CORS on Apache php
错误
1 | Access to XMLHttpRequest at 'http://bookmarks.tiiao.cn/api/qrcode.php' popup.js:27 |
问题原因
跨域请求
解决
php文件添加header,注意:添加后意味着全部站都可以跨域请求。
1 | header('Access-Control-Allow-Origin:*');#所有域名都可以 |
或者.htaccess
文件添加
1 | Header set Access-Control-Allow-Origin "*"#所有域名都可以 |
注意:.htaccess不支持多个域名,要么单个域名,要么全部域名
注意:.htaccess不支持多个域名,要么单个域名,要么全部域名
注意:.htaccess不支持多个域名,要么单个域名,要么全部域名
同理在httpd.conf
添加对于的代码也是可行的
在 <Directory>
, <Location>
, <Files>
或者 <VirtualHost>
字段内添加
1 | Header set Access-Control-Allow-Origin "*"#所有域名都可以 |
和.htaccess一样,不支持多个域名,要么单个域名,要么全部域名
注意:如果在php中添加,.htaccess
文件或者httpd.conf
文件中不能有相同功能的代码,否者会冲突
1 | Access to XMLHttpRequest at 'http://bookmarks.tiiao.cn/api/import.php' from origin 'chrome-extension://mfhbgdlbkinkfilcddigcdcidecnefbi' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed. |
其他错误
1 | Access to XMLHttpRequest at 'http://bookmarks.tiiao.cn/api/import.php' from origin 'chrome-extension://mfhbgdlbkinkfilcddigcdcidecnefbi' has been blocked by CORS policy: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response. |
也可以添加对于header头
1 | header('Access-Control-Allow-Headers:*'); |