在Safari和Chrome中允许跨域请求?服务器响应与命令行参数

时间:2011-12-30 13:07:30

标签: ajax google-chrome safari cross-domain

我正在尝试在Windows上使用Safari进行跨域请求。我的Safari版本是5.1.2。

这是一个经典问题。我在许多地方读过,只要服务器在响应中使用followin标头进行响应,Chrome和Safari就会允许跨域请求

Access-Control-Allow-Origin: *

我看过这篇文章。 How to allow cross-domain requests in Safari? 还有很多其他的在stackoverflow网站上。

然而,他们都没有回答我的问题。

即使我从服务器发回必要的标头,Chrome和Safari也会遇到跨域AJAX请求的问题。

我最终使用“--disable-web-security”运行Chrome。然后它奏效了。

我的问题:

1)我如何处理Safari?我是否使用类似的命令行参数?

2)更重要的是,我可以告诉我默认情况下Chrome和Safari是否允许跨域功能,只要服务器响应标头或我必须确保

a)服务器以标题

响应

b)使用适当的参数启动浏览器。

1 个答案:

答案 0 :(得分:4)

我发现了问题。阅读有关CORS的更多信息有助html5rocks.com/en/tutorials/cors。我意识到我的请求正在触发预检请求(OPTIONS),并且服务器未设置为正确处理这些请求。它导致预检请求的原因是因为我使用的是JQuery,它在我的请求中添加了一个自定义标头。我修改了我的代码,以防止添加这个额外的标头,我的请求不再需要预检请求。现在我不必禁用Web安全性,它可以正常工作。