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
数据类型发出的。好吧,我尝试了你发布的链接的代码,它工作了!不像真正的超时事件那样完整,但总比没有错误处理好。非常感谢你!