我正在尝试在 Windows 上使用 Safari 发出跨域请求。我的 Safari 版本是 5.1.2。
这是一个经典问题。我在很多地方读到 Chrome 和 Safari 允许跨域请求,只要服务器在响应中使用以下标头进行响应
Access-Control-Allow-Origin: *
我读过这篇文章。Safari 中如何允许跨域请求?以及 stackoverflow 网站上的许多其他内容。
然而,他们都没有回答我的问题。
即使我从服务器发送回必要的标头,我在 Chrome 和 Safari 执行跨域 AJAX 请求时遇到问题。
我最终使用“--disable-web-security”运行 Chrome。然后就成功了。
我的问题:
1) 我可以用 Safari 做什么?我是否使用类似的命令行参数?
2)更重要的是,有人可以告诉我,只要服务器响应标头,默认情况下 Chrome 和 Safari 是否允许跨域功能,还是我必须确保
a) 服务器响应一个标头
AND
b) 浏览器以正确的参数启动。
我发现了问题。阅读有关 CORS 的更多信息有帮助html5rocks.com/en/tutorials/cors。我意识到我的请求正在触发预检请求(选项),并且服务器未设置为正确处理这些请求。它引起预检请求的原因是因为我正在使用 JQuery 并且它在我的请求中添加了自定义标头。我修改了代码以防止添加此额外标头,并且我的请求不再需要预检请求。现在我不必禁用网络安全并且它工作正常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)