IE8+ JQuery Ajax子域调用和重写响应响应



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

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调用全局修复此问题?

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

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

最新更新