我使用jQuery的ajax方法向我的服务器发出jsonp请求(我时不时地发出请求)。这通常很好,服务器返回响应并触发我的“成功”回调函数。
问题是,一段时间后,即使我从服务器收到成功的响应,也会停止调用success函数。发生这种情况时,每个连续的jsonp请求也会“失败”(甚至从代码中的其他位置和\或我服务器上的其他路径)。
我检查过的事情:
服务器的响应有效(与其他成功响应相同)。
jQuery创建的jsonpXXX回调函数确实是全局定义的。
当我在同一页面上打开多个浏览器时,并非所有浏览器都会发生这种情况。
我的客户端代码是:
$.ajax({
type: "GET",
url: SOME_URL,
dataType: "jsonp",
data: {...},
success: function(data) {
alert("This function is not always being called :( ");
}
});
任何想法\帮助将不胜感激:)
答案 0 :(得分:4)
您可能会收到服务器的成功响应,但返回的JSONP文本可能存在一些问题。如果解析响应有任何错误,则调用回调函数将失败。
另外,我建议使用这个简化JSONP请求的alternative solution to jQuery's implementation of JSONP。