$ .getJSON返回一个IE和Opera浏览器的文件

时间:2012-05-14 08:30:22

标签: javascript json internet-explorer

$。getJSON正在返回IE和Opera浏览器的文件(Firefox,Chrome ......工作正常)。

代码是这样的:

$.getJSON("http://open.mapquestapi.com/nominatim/v1/search.php?format=json&osm_type=N&bounded=1&limit=100&viewbox=-5.667593479156494,43.54767717445222,-5.656242370605469,43.54280902999833&q=Restaurants",
{
    tagmode: "any",
    format: "json"
},
function(data) {
    var ind = 0;
    $.each(data, function(i, pos_reg){
       alert("Recovery " + i++ + " row");
    });
})
.error(function() {       
    alert("Was an error");
});

我认为问题是从服务器返回的Http头。 如果我在Firefox或Chrome上粘贴URL,我会看到JSON响应。 如果我在IE和Opera上粘贴URL,他们会尝试将JSON响应下载为文件。

我尝试过像这样:

$.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"});

但结果相同:(

请问好吗?提前谢谢!

1 个答案:

答案 0 :(得分:2)

这不是问题的答案。 真正的问题(原来的问题很模糊)是如何在Opera和Internet Explorer中进行跨域调用ajax。

与主题启动器链接的Cross-origin Ajax requests don't work in Opera and IE9?重复。


我知道Opera默认不打开JSON,它确实试图下载该文件。您可以在以下设置中更改此设置:“设置”> “高级”> “下载”,现在搜索 json ,如果找不到,可以创建新类型。现在填写 application / json 并将其设置为使用Opera打开(我还添加了 text / json ,因为有时网站会返回此内容类型)。这是这些屏幕的屏幕截图:

Opera json download settings

我猜你也可以在Internet Explorer中做类似的事情。 编辑:我找到了Internet Explorer的解决方案。之前已经回答过,所以我只会在这里发布答案的链接:https://stackoverflow.com/a/2492211