Ian*_*ing 7 webkit google-chrome http cors
我正在尝试使用Access-Control-Allow-Origin和相关标头的跨源资源共享.我有它在Firefox上工作,但Chrome给了我许可错误,看起来像这样:
XMLHttpRequest cannot load <remote>. Origin <local> is not allowed by Access-Control-Allow-Origin.
Run Code Online (Sandbox Code Playgroud)
网络检查员显示请求但没有响应(并且不包括OPTIONS预检请求和响应).我使用curl检查了请求输出并重现了所有头文件,我看到的内容符合规范的含义(同样,Firefox接受的内容).我不知道如何进一步调试 - 是否存在将网络活动视为低于Chrome通常提供的水平的技巧?有关Chrome如何以不同于Firefox解释CORS请求的信息?
我怀疑你所看到的是一个预检,然后由于一个错误导致Chrome请求失败.这可以解释为什么在Firefox中有效但在Chrome中无效.
您是否在请求中发送任何自定义标头?WebKit中存在一个错误,其中带有自定义标头的GET请求失败(此处有错误:http://code.google.com/p/chromium/issues/detail?id = 57836).我还注意到Chrome有时会在Access-Control-Allow-Headers列表中看到Content-Type标头,即使Content-Type是一个简单的标头.
另外,您提到网络检查员不包括OPTIONS预检?你在使用哪个网络检查员?我建议使用Wireshark,因为这会为您提供Chrome检查员未提供的实际网络流量的详细信息(例如,Wireshark将记录预检请求).
其他一些调试技巧:
在Safari中尝试请求.这将有助于将其缩小到Chrome错误或WebKit错误.
我看到你看到的错误的时间(Wireshark显示请求但不是响应),这是因为我的服务器不包含Access-Control-Allow-Origin标头,因为Chrome不是,所以不包括发送Origin标头(见上面的错误).在网络跟踪中,您是否在请求中看到了Origin标头?您是否可以控制服务器,如果是,它是否接收到Origin标头?
如果没有更多细节,很难调试实际问题.如果您仍然遇到问题,可以在此处发布请求/响应标头吗?
| 归档时间: |
|
| 查看次数: |
13113 次 |
| 最近记录: |