我一直在开发一个涉及制作CORS ajax调用的jQuery插件。开发工作在纯HTML页面内部开始。我能够在chrome,firefox和IE7 +中打开文件(右键单击,使用[浏览器]打开),它将从我公司的开发服务器(使用https)恢复数据。
当我开始将此插件集成到新的Web表单页面时,问题出现了。我这次通过IIS运行它,并且ajax调用在IE< = 9中以“错误:访问被拒绝”回来,但在IE10,11,chrome和firefox中工作正常。
在Fiddler中,我比较了作为文件打开的html页面发出的请求和通过IIS运行的html页面。将其作为普通文件打开,请求包含一个设置为null的Origin HTTP标头。在IIS下,请求没有Origin标头,但它有一个Referer标头设置为localhost。
我读过IE 8和9只对CORS有部分支持,而IE10则完全支持。
我不明白为什么当我将html页面作为普通文件打开然后在通过IIS运行时无效时,我的CORS ajax调用可以在IE 7/8/9中运行。还有其他人遇到过这个问题吗?是Referer标题是否会导致拒绝访问错误?