在开发过程中,难免会遇到跨域发起业务请求,比如A站点向B站点请求数据等等。跨域的解决方法有很多种,这里只介绍ThinkPHP的解决方法。
核心代码:
// 返回JSON数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
// 允许访问源
header('Access-Control-Allow-Origin:*');
// 允许访问的有效期
header('Access-Control-Max-Age:86400');
// 允许访问的方法
header('Access-Control-Allow-Methods:OPTIONS, GET, POST, DELETE');
其中访问源可以指定某个域名,比如:
// 允许 baidu.com 发起的跨域请求
header("Access-Control-Allow-Origin: baidu.com");
//如果需要设置允许所有域名发起的跨域请求,可以使用通配符 *
header("Access-Control-Allow-Origin: *");
但是这样的话需要在每个控制器里面写一个这样的,那么我们的控制器一般都是直接继承控制器,那么我们就定义一个Base基类
class Base extends Controller{
public function _initialize(){
//处理跨域问题
header('Content-Type:application/json; charset=utf-8');
header('Access-Control-Allow-Origin:*');
header('Access-Control-Max-Age:86400'); // 允许访问的有效期
header('Access-Control-Allow-Headers:*');
header('Access-Control-Allow-Methods:OPTIONS, GET, POST, DELETE');
}
}
php
转载:感谢您对梦屿千寻个人博客网站平台的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源梦屿千寻个人博客”。
很赞哦!()