javascript - $.getJSON 是用 IE 和 Opera 浏览器返回一个文件

标签 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 header 。 如果我粘贴 URL在 Firefox 或 Chrome 上,我看到 JSON 响应。 如果我将 URL 粘贴到 IE 和 Opera 上,它们会尝试将 JSON 响应下载为文件。

我尝试过这样的事情:

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

但结果相同:(

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

最佳答案

这不是问题的答案。 真正的问题(原来的问题含糊不清)是如何在 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 .

关于javascript - $.getJSON 是用 IE 和 Opera 浏览器返回一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10579836/

相关文章:

javascript - 哪些数据被传递给从 FB.ui( ) 调用的回调函数?

javascript - 从序列化中读取以填充表单

javascript - 如何读取JSON文件并修改JQuery

php - Swift - JSON 响应以\u201c 开头并以\u201d 结尾

javascript - "Object doesn' t 在IE中支持属性或方法'find'”

jquery - 带 jQuery 验证的 Google 表单未提交到 IE 7 中的表单

javascript - Nuxt 根据 .json 文件数据生成动态页面

javascript - 如何从ng-repeat发送数据?

javascript - 转置 JSON 数据

javascript - 提交前的图像预览在 IE 9 和 Safari 5.x 中不起作用