tp5允许跨域请求配置

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

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

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基类添加行为标签位

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

b、定义行为

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文件来统一定义行为

'cros' => [
'app\\api\\behavior\\Cros'
],
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容