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

Javascript $.getJSON返回一个带有IE和Opera浏览器的文件,javascript,json,internet-explorer,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.5428

$.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上粘贴,我会看到JSON响应。 如果我在IE和Opera上粘贴URL,他们会尝试下载JSON响应文件

我试过这样的方法:

$.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"});
但同样的结果是:(


有什么想法吗?请提前感谢!

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

复制到主题启动程序链接的


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

我想您也可以在Internet Explorer中执行类似的操作。
编辑:我找到了Internet Explorer的解决方案。它在上之前已经得到了回答,因此我将在这里发布答案的链接:。

尝试获取简单的获取并评估返回的数据确定,您遇到的问题是由于安全违规(跨域请求)。你的问题本身并不清楚。你必须使用JSONP来解决这个问题。可能是这样!@Styxxy:D但是…在Firefox和Chrome中完美工作是正常的吗?提前谢谢!这是一个副本;)谢谢Styxxy!!