-

tp5允许跨域请求配置

PHP

目前Web项目开发基本都是前后端分离的架构,那就避免不了会遇到跨域问题。在前端请求接口的时候,接口的协议、域名、端口三者之间任意一与当前页面地址不同就会出现跨域。跨域的时候会两次请求,第一次是 option去探测服务器是否允许跨域,然后才会正式去请求接口。ThinkPHP 5 是目前国内比较常用的PHP框架。下面雷雪松介绍两种tp5允许跨域请求的方法。

1、在TP5入口文件 index.php 配置。

1
2
3
4
5
6
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
exit;
}

2、通过TP5行为(Behavior)配置全局跨域
a、在base.php基类添加行为标签位

1
\think\Hook::listen('cros');

b、定义行为

1
2
3
4
5
6
7
8
namespace app\index\behavior;
class Cros{
public function run(&$params){
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
}
}

c、在目录下面或者模块的目录下面定义tags.php文件来统一定义行为

1
2
3
'cros' => [
'app\\api\\behavior\\Cros'
],

来源:tp5允许跨域请求配置

tp5允许跨域请求配置” 评论

    ndge 评论:
    2020年9月3日 下午1:50

    快递代发,礼品代发,单号网站www.5adanhao.cn

发表评论

电子邮件地址不会被公开。 必填项已用*标注