jQuery的jsonp回调不会在一段时间后触发

问题描述:

我使用jQuery的ajax方法来向我的服务器发出jsonp请求(我不时发出请求)。这通常工作得很好,服务器返回一个响应,我的“成功”回调函数被触发。jQuery的jsonp回调不会在一段时间后触发

问题是,一段时间后,即使我收到来自服务器的成功响应,成功函数也会停止被调用。当发生这种情况时,每个连续的jsonp请求也会“失败”(甚至从代码中的其他地方和\或服务器上的其他路径)。

事情我已经检查:

  1. 来自服务器的响应是有效的(像其他成功响应)。

  2. jQuery创建的jsonpXXX回调函数确实是全局定义的。

  3. 当我在同一页面上打开多个浏览器时,它并不会在所有浏览器中发生。

我的客户端代码:

$.ajax({ 
    type: "GET", 
    url: SOME_URL, 
    dataType: "jsonp", 
    data: {...}, 
    success: function(data) { 
     alert("This function is not always being called :("); 
    } 
}); 

任何意见\帮助将不胜感激:)

您可能会收到来自服务器的成功响应,但也有可能会出现一些问题与返回的JSONP文本。如果在解析响应时出现任何错误,则调用回调函数将失败。

另外,我建议使用这个简化JSONP请求的alternative solution to jQuery's implementation of JSONP

+0

我没有看到JSONP文本的任何问题。但我转移到jquery-jsonp,现在看起来工作正常。谢谢 :) – Ofirov 2011-02-22 10:12:34