我正在编写一个Web应用程序,我想我不知道CORS的工作原理。
我对发送和接收方拥有完全控制权。
我正在使用Chrome,浏览器报告当前页面(http://site1.com/top.php
)的响应标头为Access-Control-Allow-Origin: *
。然后,(对http://site2.com/project.php
的AJAX调用表明project.php正在响应标头Access-Control-Allow-Origin: *
。
我不确定top.php和project.php是否都具有此标头。但是我只是为了确保将其添加到两者中。
地图集,即使使用了允许的访问控制,我也会收到错误消息:
Access to XMLHttpRequest at '[http://site2.com/project.php]' from origin '[http://site1/top.php]' has been blocked by CORS policy: Request header field x-requested-with is not allowed by Access-Control-Allow-Headers in preflight response.
答案 0 :(得分:0)
将“ https://cors-anywhere.herokuapp.com/”添加到URL并尝试。 例如,“ https://cors-anywhere.herokuapp.com/site2.com/project.php”
答案 1 :(得分:-1)
由于注入攻击,大多数浏览器都阻止了跨源请求。仅当服务器允许客户端的来源访问时,才允许跨来源请求。
如果要启用跨源请求,请在http://site2.com/project.php
的{{1}}开头添加一行header('Access-Control-Allow-Origin: site2.com')
,并且site2.com应该能够成功访问而无需任何操作浏览器错误。