我正在编写一个页面,使用AJAX
发出两个jQuery
个请求,每个请求使用不同的服务器。但问题是每个请求都需要调用它自己的超时事件。似乎是上次AJAX
请求触发的唯一超时事件。如果我只是在页面上执行单个请求,则超时有效,但如果我添加第二个请求,则第一个脚本的超时不起作用。
我已经花了几个小时搜索关于如何解决这个问题并取得成功。
以下是我的代码示例,可帮助您弄清楚我在说什么:
$(document).ready(function($) { // This goes in the fist script but I could not put the script tags
function getData() {
$.ajax({
url: "urlpath",
async: false,
dataType: "jsonp",
timeout: 4000, // This timeout does not work when the second request is present
success: function(parsed_json) {
console.log("Success for the fist request");
},
error: function(request, status, err) {
if (status == "timeout") {
console.log("Timeout error for the first request");
} else {
console.log("Unknown error for the fist request");
}
}
});
});
$(document).ready(function() { // This goes in the second script
$.ajax({
url : "urlpath.json",
dataType : "json",
timeout: 8000, // This timeout does work
success: function(parsed_json) {
console.log(Success for the last request);
},
error: function(request, status, err) {
if (status == "timeout") {
console.log(Timeout reached for the last request);
} else {
console.log(Unknown error on the last request);
}
}
});
});
欢迎任何帮助。非常感谢你。
答案 0 :(得分:0)
你的第一个请求是jsonp,而不是json,所以你可能需要自己处理超时: jQuery ajax (jsonp) ignores a timeout and doesn't fire the error event