我们遇到了一个$ .getJSON调用的奇怪问题,它似乎只影响旧版本的IE。代码如下:
var success = function (response) {
// do stuff
}
$.getJSON(url, success);
在Chrome浏览器,火狐,IE10,此代码的工作就好了 - 的getJSON命中URL(这是有效的,不是跨域),返回200 OK并返回数据,如你所期望的那样,它被传递给成功功能。
但是,在IE9及以下版本中,会调用成功回调,但传递的响应参数未定义。通过在IE开发工具中捕获网络流量,我可以看到呼叫击中URL,返回200 OK并返回响应正文中的有效JSON。那么为什么当它成功回调时出现未定义?
我试过使用$ .ajax调用,而不是使用适当的参数,我看到了相同的行为。下面的代码:
$.ajax({
dataType: "json",
url: url,
success: success
};
我们使用jQuery 1.7.2(我们已经在页面上得到了图书馆之一是jQuery的新版本,因此旧版本断下)。
编辑:刚刚尝试更新页面使用jQuery 1.10.1,不解决问题。
编辑2:我已经确认返回的JSON数据通过jsonlint.com有效,所以这也不是问题。
如果使用简单的'XMLHttpRequest',是否会发生同样的问题? –
@ Qantas94Heavy在调用$ .ajax?我刚才编辑的问题包括 - 是的,我试过使用$ .ajax,相同的行为 –
什么是数据被返回? –