Ajax跨域处理No 'Access-Control-Allow-Origin' header
Lasted 2019-12-31 12:05:42
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present
Ajax跨域请求时会被浏览器限制,出现如上错误提示,W3C标准规定,如果需要实现不同域名之间资源共享,需要目标服务器返回一系列Headers,表明是否同意其他服务器访问资源。
详细情况可以参考:HTTP访问控制(CORS)
设置Header
1. 设置某个域名可以访问
<?php
#PHP
header("Access-Control-Allow-Origin: https://docsxyz.com");
2. 设置所有域名可以访问
<?php
#PHP
header("Access-Control-Allow-Origin: *");
#浏览器返回效果
#Access-Control-Allow-Origin: *
3.静态页面中设置
<meta http-equiv="Access-Control-Allow-Origin" content="*" />
3.Nginx中设置
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Credentials' 'true';
常见问题
The 'Access-Control-Allow-Origin' header contains multiple values '*, *',
如果在PHP和Nginx同时设置,Header中会出现多个'Access-Control-Allow-Origin',会出现如上错误,去掉一个即可。