IE8 + JQuery Ajax子域调用和覆盖响应响应

时间:2013-03-30 13:34:43

标签: jquery ajax internet-explorer-8 internet-explorer-9 cross-domain

我在IE和Ajax调用IE浏览器8及以上时遇到了一些麻烦。我有一个网站,它对一个返回json数据的子域进行ajax调用。对于IE8,我发现并为Ajax调用添加了这个ovveride,代码如下:

if ('XDomainRequest' in window && window.XDomainRequest !== null) {
  // override default jQuery transport
  jQuery.ajaxSettings.xhr = function() {
      try { return new XDomainRequest(); }
      catch(e) { 
        console.log(e); 
      }
  };

  // also, override the support check
  jQuery.support.cors = true;
  jQuery.ajaxSettings.dataType = 'json';

}

问题是响应,它不会以json而是纯文本形式返回。如何针对所有Ajax调用全局修复此问题?

1 个答案:

答案 0 :(得分:0)

尝试将jQuery AJAX参数“dataType”设置为“json”,这告诉它您需要返回一个JavaScript JSON对象,而不是让它根据响应mime类型进行智能猜测。

如果这不起作用,我想您可以尝试为通过JSON解析器运行响应的纯文本添加自定义转换器。