これは私の最初のAjaxリクエストです。私はクライアントのブラウザを待たせたくないので、私のコードは成功を待っていません。他のページにすぐにリダイレクトされます。しかし、それは動作していません。リダイレクト時にajaxリクエストをキャンセルしないようにするにはどうすればよいですか?
$.ajax({
data: '{}',
url: "Service.asmx/GetNextID",
success: function(msg1) {
$.ajax({
type: "POST", cache: false, contentType: "application/json; charset=utf-8", dataType: "json", timeout: 5000,
url: "Service.asmx/SaveData",
dataFilter: function(data) {var msg = (typeof (JSON) !== 'undefined' && typeof (JSON.parse) === 'function') ? JSON.parse(data) : eval('(' + data + ')');return (msg.hasOwnProperty('d')) ? msg.d : msg;},
data: "{ID:'" + $get('<%=txt1.ClientID %>').value + "',Date:'<%=cutoffdate%>',data:'" + $("#<%=txt2.ClientID %>").val() + "'}",
error: function(xhr, desc, exception){
alert("Failed!");
}
});
window.location = "../Result.aspx?ID=" + msg1.ID;
},
error: function(xhr, desc, exception) {
}
});
したがって、成功を待っておらず、別のページにリダイレクトされるため、次の "SavaData"呼び出しがキャンセルされます。
回避策はありますか?
私には正しいことはありません。 ajax呼び出しは、レスポンスが200または302の応答かどうかを知るまで待つ必要があります。成功を待つことなくどのようにリダイレクトできますか? –