我在 JQuery AJAX 中有一个奇怪的问题..
我的步骤顺序如下:
1)我有一个 JS 函数,我在按钮单击事件上调用它:
function Click()
{
//I am performing some Validations then making an AJAX Request:
$.ajax({
type: "POST",
url: url,
context: window,
data: datatoPost,
contentLength: contentLength,
async: true,
success: function (response) {
callbackFn(response);
},
error: function (msg) {
this.error = msg;
}
});
// The callback function is called on Successfull AJAX Request
// i.e. callbackFn (See below)
// I am then checking the window.IsValid which I have set in below function;
if (window.IsValid == true) {
// Then Perform another AJAX Request
}
else {
// do nothing
}
}
function callbackFn(response)
{
if(response == 'Valid')
{
window.IsValid = true;
}
else
{
window.IsValid = false;
}
}
2) 现在,问题是当服务器正在处理第一个 AJAX 请求时,之后编写的代码即 if (window.IsValid == true) { // 然后执行另一个 AJAX 请求 } else { // 什么都不做 } } 被执行
3)我得到window.IsValid = false作为第一个 AJAX 请求的回调函数,即callbackFn(response)尚未调用,即使在第一个 AJAX 请求的有效响应之后,我的第二个 ajax 请求也没有作为window.IsValid变量执行在回调函数中设置,因为由于服务器正在处理请求,尚未调用回调。
请帮助我,我被卡住了..