Jquery 只工作一次
我正在编写一个页面,通过使用Jquery 只工作一次,jquery,ajax,Jquery,Ajax,我正在编写一个页面,通过使用jQuery,生成两个AJAX请求,每个请求发送到不同的服务器。但问题是当每个请求都需要调用自己的超时事件时。似乎上次发出的AJAX请求触发的唯一超时事件是。如果我只在页面上执行一个请求,则超时有效,但如果添加第二个请求,则第一个脚本的超时无效 我已经花了几个小时研究如何解决这个问题,但没有成功 下面是我的代码示例,可以帮助您了解我在说什么: $(document).ready(function($) { // This goes in the fist script
jQuery
,生成两个AJAX
请求,每个请求发送到不同的服务器。但问题是当每个请求都需要调用自己的超时事件时。似乎上次发出的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);
}
}
});
});
欢迎任何帮助。提前非常感谢。您的第一个请求是jsonp,而不是json,因此您可能需要自己处理超时:
您在哪里调用
getData()
?上面显示的只是它是在事件处理程序中定义的。而且,由于它是在一个匿名函数中定义的,所以没有其他代码可以访问它?它没有调用任何函数,但定义了响应的等待时间?@AxelAmthor这正是我想要做的,如果响应需要超过x秒才能完成,则启动超时事件处理程序,但似乎我只能在页面中有一个超时。@StephenThomas这不是问题,我省略了getData()上方的代码
函数,但函数是在省略的代码上调用的。我认为这不是实际问题。我有另外一个页面,只是第一个请求,它的超时工作如预期,这些请求是用JSONP
数据类型发出的。好吧,我尝试了你发布的链接的代码,它工作了!不像真正的超时事件那样完整,但总比没有错误处理好。非常感谢你!