$。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"});
但结果相同:(
请问好吗?提前谢谢!
答案 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 ,因为有时网站会返回此内容类型)。这是这些屏幕的屏幕截图:
我猜你也可以在Internet Explorer中做类似的事情。 编辑:我找到了Internet Explorer的解决方案。之前已经回答过,所以我只会在这里发布答案的链接:https://stackoverflow.com/a/2492211。