微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过jQuery.ajax在Firefox中加载客户端JSON时,会出现“格式不正确”的警告

我使用jQuery的ajax方法获取静态 JSON文件.数据是从本地文件系统加载的,因此没有服务器,所以我无法更改MIME类型.

这在Safari中工作正常,但Firefox(3.6.3)报告文件“格式不正确”.我知道并已经审查了Stack Overflow上的类似文章

“not well-formed” error in Firefox when loading JSON file with XMLHttpRequest

我相信我的JSON格式很好:

{
    "_": ["appl","goog","yhoo","vz","t"]
}

我的ajax电话很简单:

$.ajax({
    url: 'data/tickers.json',dataType: 'json',async: true,data: null,success: function(data,textStatus,request) {
        callback(data);
    }
});

如果我使用文档标签来包装JSON:

<document>JSON data</document>

如上面引用的另一个Stack Overflow问题中所述,ajax调用失败并带有解析错误.

那么在阅读客户端的JSON文件时有没有办法避免Firefox的警告?

解决方法

有时使用HTTP服务器不是一个选项,这可能意味着不会为某些文件自动提供MIME类型.改编自Peter Hoffman的 jQuery .getJSON Firefox 3 Syntax Error Undefined的答案,在您进行任何$.getJSON()调用之前,请使用此代码
$.ajaxSetup({beforeSend: function(xhr){
  if (xhr.overrideMimeType)
  {
    xhr.overrideMimeType("application/json");
  }
}
});

或者,如果您使用$.ajax():

$.ajax({
  url: url,beforeSend: function(xhr){
    if (xhr.overrideMimeType)
    {
      xhr.overrideMimeType("application/json");
    }
  },data: data,success: callback
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐