我有一个生成JSON文档的PHP文件.
我设置header如下,但仍然出错.
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
Run Code Online (Sandbox Code Playgroud)
错误信息:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://mysubdomain.mydomain.com' is therefore not allowed access.
我试过明确允许使用mysubdomain.mydomain.com
header('Access-Control-Allow-Origin: https://mysubdomain.mydomain.com');
Run Code Online (Sandbox Code Playgroud)
但我仍然得到错误.
看起来设置标头的代码没有任何问题,但您可能想要检查标头是否实际设置.使用curl -i http://yourapp检查响应头被发送到调试.或者,您可以使用Google Chrome网络检查器中的网络标签,或Firefox的Web开发人员工具中的网络工具.
使用 htaccess 文件,您可以尝试设置:
Header always set Access-Control-Allow-Methods "POST, GET, PUT, OPTIONS, PATCH,DELETE"
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Credentials "true"
Header always set Access-Control-Allow-Headers "content-type,Authorization,Cache-Control,X-Requested-With, X-XSRF-TOKEN"
Run Code Online (Sandbox Code Playgroud)
或者使用 PHP:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, PUT, OPTIONS, PATCH, DELETE');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Headers: Authorization, Content-Type, x-xsrf-token, x_csrftoken, Cache-Control, X-Requested-With');
Run Code Online (Sandbox Code Playgroud)