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)最初の AJAX 要求のコールバック関数、つまりcallbackFn(response)がまだ呼び出されていないため、 window.IsValid = falseを取得します。最初の AJAX 要求の有効な応答の後でも、2 番目の ajax 要求はwindow.IsValid変数として実行されません。サーバーがリクエストを処理しているため、コールバックがまだ呼び出されていないため、コールバック関数に設定されています。
私が立ち往生している私を助けてください..