flo*_*pin 8 javascript safari ajax cors http-status-code-302
我对Safari处理CORS请求的方式有疑问.考虑以下场景:
这适用于Chrome,FF,但它在Safari上失败(在Mozilla/5.0(Macintosh; Intel Mac OS X 10_10_5)AppleWebKit/600.8.9(KHTML,如Gecko)版本/ 8.0.8 Safari/600.8.9上测试).
当我在没有打开xhr.withCredentials的情况下发出请求时,首先,Safari会在向DomainC提出实际请求之前发出OPTIONS预检请求,因为所有请求都是简单请求,但我可以处理这个请求.问题是Safari在对DomainC的预检请求说"无法从null发出任何请求"后失败.我可以通过将Access-Control-Allow-Origin设置为*并删除Access-Control-Allow-Credentials标头(这些是互斥的)来绕过这一点,这将使这种情况起作用.但是我仍然认为这不是正确的行为.
现在,事情是我需要传递凭据(并且不,我不能以其他方式传递它,因为它依赖于某些第三方服务器).那么,让我们来吧
xhr.withCredentials
为true,我们回到"无法从null发出任何请求",现在甚至通配符访问控制允许凭证也无济于事.
我认为所有CORS标头都设置正确,但请随时查看我.测试示例可以在这里找到:http://a.ihatesafari.com
这里发生了什么?这是一个错误还是我错过了什么?
谢谢你的回答
| 归档时间: |
|
| 查看次数: |
2164 次 |
| 最近记录: |