如果我们是前后端分离,且不再同一域的情况下,前端使用Ajax请求后端的数据的时候,就会出现跨域的问题。

        在前端我们可以使用获取jsonp格式来应对跨域问题,但是这种方式比较难用,如果前端后端都是可以进行编写的情况下,我们可以修改PHP后端的格式,用这样的方式来解决跨域问题。


        根据查找资料,我们可以通过设置Access-Control-Allow-Origin来实现跨域。

在此我们规定,客户端为:http://abc 被请求端为:http://def

1、允许单个域名访问

header('Access-Control-Allow-Origin:http://abc');

2. 允许多个域名访问

$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';  //获取请求的域名
$allow_origin = array(  
    'http://abc',  
    'http://abc1'  
);//允许的域名
if(in_array($origin, $allow_origin)){   //判断是否在允许域名列
    header('Access-Control-Allow-Origin:'.$origin);   
} 

3.允许所有域名访问

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

更多推荐

PHP后端API接口解决Ajax跨域请求的方式