这是非常着名的浏览器错误。我知道它已被讨论了很多,但我注意到这是一个非常一般的错误,所以我想提出我的问题。
我在我有权访问的服务器上发出简单的请求(获取,发布)。我的浏览器(chrome,firefox)给我Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at url (Reason: CORS header 'Access-Control-Allow-Origin' does not match 'null').
错误。
当我使用一些(黑客)插件时,我的回复很好。
我尝试过的是添加到我的后端(在服务器上):
header('Access-Control-Allow-Origin: *');
在index.php
文件中没有运气。还有其他想法吗?
答案 0 :(得分:4)
尝试添加
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT, GET, POST");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
答案 1 :(得分:1)
我已经解决了这个问题。
// HTTP
define('HTTP_SERVER', 'http://domain name with www/');
// HTTPS
define('HTTPS_SERVER', 'http://domain name with www/');
添加htaccess文件
RewriteCond%{REQUEST_METHOD}选项 RewriteRule ^(。*)$ $ 1 [R = 200,L]
答案 2 :(得分:0)
有几种方法可以做到这一点。一种方法是javascript方式,需要回调,可在此处找到一个示例:Loading cross domain html page with AJAX
另一种方法是利用PHP的curl
功能。当然有很多方法可以做到这一点,但一种适合我的方法是:
希望这有帮助, 亚当
答案 3 :(得分:0)
您可以将被阻止的URL列入白名单,例如:
script-src'unsafe-inline'https:'nonce-abcdefg''strict-dynamic'
答案 4 :(得分:-2)
我尝试在服务器端更改几次尝试后添加chrome插件“Allow-Control-Allow-Origin”。一切都很好。