如果我们是前后端分离,且不再同一域的情况下,前端使用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跨域请求的方式
发布评论