我正在使用 ajax 和 jquery 发送同步 http 请求。
我必须使用同步请求,因为我想在评估服务器端脚本的结果后 从 ajax 函数返回一些值。
我知道同步请求会冻结浏览器,但由于我的要求,我将不得不执行此请求。
我也知道在同步请求中没有使用 onreadystatechange 函数,我们应该在发送请求后或在发送函数下方评估我们的结果。通过这样做,我的代码处于工作状态。
但是,我的问题是,当我使用onreadystatechange函数时,它在 firefox >=4版本中工作,但在 firefox 4 以下版本中不工作。
请。帮助我找出问题是代码还是浏览器。
我现在无法找出错误我无能为力...请帮助这是我的代码
function test(txt_obj) {
var keywords = txt_obj.value;
var SHttpRequestObject = false;
var url = "/speller/server-scripts/ifmisspelled_words.html" + '?keywords=' + keywords);
var speller_res = 0;
if (window.XMLHttpRequest){
SHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject){
SHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
SHttpRequestObject.open("POST", url, false);
if (SHttpRequestObject){
SHttpRequestObject.onreadystatechange = function() {
if (SHttpRequestObject.readyState == 4 && SHttpRequestObject.status == 200)
{
var result = eval("(" + SHttpRequestObject.responseText + ")");
if(result.error) {
speller_res = 1;
} else if(result.word_exist) {
speller_res = 1;
}
else if(result.word_not_exist) {
speller_res = 0;
}
}
};
}
SHttpRequestObject.send(null);
return speller_res;
}