2018-07-17 PHP跨域问题解决方案

您现在的位置是: 首页 > PHP技术 >  PHP跨域问题解决方案

253次阅读

本文通过设置Access-Control-Allow-Origin来实现跨域。例如:客户端的域名是clilent.whmblog.cn,而请求的域名是server.whmblog.cn。如果直接使用ajax访问,会有以下错误:

XMLHttpRequest cannot load http:/server.whmblog.cn/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://client.whmblog.cn' is therefore not allowed access.


一、允许单个域名访问


指定某域名(http://client.whmblog.cn)跨域访问,则只需在http://server.whmblog.cn/server.php文件头部添加如下代码:

<?php

header('Access-Control-Allow-Origin:http://client.whmblog.cn');


二、允许多个域名访问


指定多个域名(http://client1.whmblog.cn、http://client2.whmblog.cn等)跨域访问,则只需在http://server.whmblog.cn/server.php文件头部添加如下代码:

<?php

$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';  
  
$allow_origin = array(  
    'http://client1.whmblog.cn',  
    'http://client2.whmblog.cn'  
);


三、允许所有域名访问


允许所有域名访问则只需在http://server.whmblog.cn/server.php文件头部添加如下代码:

<?php

header('Access-Control-Allow-Origin:*');