Access to XMLHttpRequest at 'https://www.xxx.com/' from origin 'http://www.xxx.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
要解决PHP跨域问题,可以采取以下几种方法:
- 设置HTTP头部:在PHP脚本中添加以下代码,允许指定的域名访问当前页面:
header('Access-Control-Allow-Origin: http://example.com');
将
http://example.com
替换为允许访问的域名。如果允许所有域名访问,可以使用通配符*
:header('Access-Control-Allow-Origin: *');
- 设置HTTP头部包含其他允许的请求头:如果在跨域请求中使用了自定义的请求头,需要在PHP脚本中设置
Access-Control-Allow-Headers
头部,允许这些请求头的使用:header('Access-Control-Allow-Headers: Content-Type, Authorization');
- 支持不同的HTTP方法:如果跨域请求使用了PUT、DELETE等非标准的HTTP方法,需要在PHP脚本中设置
Access-Control-Allow-Methods
头部,允许这些方法的使用:header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
- 携带身份凭证:如果在跨域请求中需要携带身份凭证(如Cookie),需要在PHP脚本中设置
Access-Control-Allow-Credentials
头部为true
header('Access-Control-Allow-Credentials: true');
请注意,以上方法只是在PHP端解决跨域问题的一种方式。在实际开发中,还可以通过配置服务器或使用代理服务器等其他方法来解决跨域问题。
.二、框架里如何设置跨域
fastadmin框架可以在
config.php找到
cors_request_domain//允许跨域的域名,多个以,分隔 'cors_request_domain' => 'localhost,127.0.0.1',//你的域名 *所有
ThinkPHP在入口index.php加入
header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:GET,POST'); header('Access-Control-Allow-Headers:x-requested-with,content-type');