1
I’ve been needing to make a synchronous request and the result has given me this error.
Uncaught Domexception: Failed to execute 'send' on 'Xmlhttprequest': The Object’s state must be OPENED.
The idea of this code is to make it run one call after another
function requisicaoSincrona(categoria, callback){
xmlhttp = null;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
values = {"modulo":modulo,"categoria":categoria};
myJsonString = JSON.stringify(values);
xmlhttp.onreadystatechange = respond;
xmlhttp.open("POST", "classes/getData.php", true);
xmlhttp.send(myJsonString);
//xmlhttp.abort();
//como o código executado na volta da requisição é a função respond, chamamos o callback aqui
function respond() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
x = document.getElementsByClassName('terceiraEtapa');
x[0].innerHTML += xmlhttp.responseText;
}
//verifica se uma função foi de fato passada, para então chama-la
if(callback){
callback.call();
}
}
}
function pegaSuporte(){
requisicaoSincrona(9);
}
requisicaoSincrona(6,pegaSuporte)