我目前正在尝试与客户端的REST服务集成,并且正在进入" No' Access-Control-Allow-Origin'标头出现在请求的资源上#34;错误。我已经联系了他们并请求将此标题放入响应中,如果我直接从chrome选项卡中点击URL(同时使用Fiddler检查),我可以看到该响应。在使用"高级REST客户端"进行检查时,我也能够看到正确的响应标头。 Chrome的扩展程序。
经过更多测试,当我从XMLHttpRequest调用URL时,我注意到它没有发送" GET"请求,但发送了一个" OPTIONS"请求。我已经对此进行了一些研究,发现这就是所谓的“飞行前”"请求。我做了一些额外的测试,当从REST Client chrome扩展程序发出OPTIONS请求时,我能够看到标题。但是,当我在Chrome的网络标签中检查来自XMLHttpRequest的响应时,无法找到标题。
我的第一个问题:发送OPTIONS请求的REST客户端和发送OPTIONS请求的XmlHttpRequest之间有区别吗?
我们可能面临的下一个障碍是他们需要基本身份验证才能访问他们的服务。这篇文章(http://www.sencha.com/forum/showthread.php?265119-Authorization-header-not-sent-on-preflight-OPTIONS-request)规定,在#14;飞行前"之前不会发送授权标题。要求。我刚刚在Chrome Incognito窗口中测试了XmlHttpRequest调用(只是为了确保之前没有授权),我在200响应中收到了这些标题:
Allow:GET, HEAD, POST, PUT, DELETE, OPTIONS
Connection:close
Content-Length:0
Content-Type:application/x-msdownload
Date:Wed, 30 Apr 2014 18:33:15 GMT
Server:[Server_Info_Here]
我的第二个问题是:如果授权将阻止成功的"飞行前"来自XmlHttpRequest的请求,我不会收到200响应,对吗?
如果我能提供有助于解释情况的任何进一步细节,请告诉我。