首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自jSON的非常奇怪的IE9 ajax响应

来自jSON的非常奇怪的IE9 ajax响应
EN

Stack Overflow用户
提问于 2012-11-13 23:48:36
回答 1查看 1.5K关注 0票数 0

我在网上搜索了许多IE9 ajax跨域问题的解决方案,但是找不到任何解决方案。

用于ajax调用的url如下所示(这是跨域的,因为我的域看起来像www.domain.com):

代码语言:javascript
复制
"http://some.domain.com/folder//api/12c63101-5d02-ab70-6e2a-4519ed75a0fd/rename?accept=json"

ajax调用如下所示(我尝试过添加/移除跨域/类型以及我所能想到的任何东西)

代码语言:javascript
复制
$.ajax({
        url:url,
        dataType:'json',
        type: 'POST',
        crossDomain: true,
        success:function(data){}
        complete : function(data) {}})

这是chrome的一个可爱的响应(这次请求应该失败):

代码语言:javascript
复制
 {errorCode: -3997, errorDescription: "[runtime][RECOVERABLE] failed, name [] taken", success: false, payload: null}

,但这是IE9的奇怪反应

代码语言:javascript
复制
LOG: {
readyState : 0,
setRequestHeader : function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},
getAllResponseHeaders : function(){return s===2?n:null},
getResponseHeader : function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},
overrideMimeType : function(a){s||(d.mimeType=a);return this},
abort : function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this},
done : function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},
fail : function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},
progress : function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},
state : function(){return e},
isResolved : function(){return!!e},
isRejected : function(){return!!e},
then : function(a,b,c){i.done(a).fail(b).progress(c);return this},
always : function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},
pipe : function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.re,
promise : function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a},
success : function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},
error : function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},
complete : function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},
statusCode : function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},
status : 0,
statusText : "No Transport"

}

(当我尝试将其解析为JSON时,IE9响应会在代码中触发SCRIPT1014: Invalid character,因为它显然不是JSON.)

与“禁止运输”有关吗?跨域问题?

你说-8?(已声明为$.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"});

我没有希望-有人能给我建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-14 02:06:32

试着设置:

代码语言:javascript
复制
jQuery.support.cors = true; // force cross-site scripting (as of jQuery 1.5)

看看是否有用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13370880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档