让IE停止在iframe中将ajax视为跨域

时间:2012-07-04 12:33:49

标签: javascript jquery ajax internet-explorer cross-domain

我有以下设置:

www.domain1.com/page1/ - 向www.domain1.com/page2/

发出ajax POST请求

www.domain1.com/page2/ - 返回json响应


www.domain2.com/page1/ - 在iframe中嵌入www.domain1.com/page1/


当我加载www.domain1.com/page1/时,会发出ajax请求并且一切正常。当我在Chrome或Firefox中加载www.domain2.com/page1/时,iframe中会显示www.domain1.com/page1/,并且ajax请求会正常。

当我尝试在IE7 / IE8中加载www.domain2.com/page1/时,ajax请求会出现FORBIDDEN错误 - 它似乎将请求视为跨域并阻止它,即使请求是从www.domain1.com/page1/www.domain1.com/page2/

当请求是GET时,它在IE中工作正常,但不是POST。我怎样才能让IE停止将其视为跨域,只是因为整个流程都包含在iframe中?

谢谢!

1 个答案:

答案 0 :(得分:2)

jQuery v1.7.2将在IE中修复CORS,即使它不是真正的CORS,但IE认为它是。
JavaScript函数开头的这个简单布尔值应该可以解决这个问题

$.support.cors = true;

这适用于GET和POST。