此前已经讲过两次关于跨域的问题。
VUE和Thinkphp6做前后端分离时,跨域请求怎么设置?Access-Control-Allow-Origin设置教程
但是近期进行复核是发现,如果每次请求都要进行跨域预请求的话,可能最终还是会导致无法请求到资源。
以Thinkphp6为例,在开启路由中间件的前提下,需要在public/index.php,入口文件加入如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006-2019 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <liu21st@gmail.com> // +---------------------------------------------------------------------- // [ 应用入口文件 ] namespace think; //处理跨域预检请求 if($_SERVER['REQUEST_METHOD'] == 'OPTIONS'){ //允许的源域名 header("Access-Control-Allow-Origin: *"); //允许的请求头信息 header("Access-Control-Allow-Headers: *"); //允许的请求类型 header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH'); exit; } require __DIR__ . '/../vendor/autoload.php'; // 执行HTTP应用并响应 $http = (new App())->http; $response = $http->run(); $response->send(); $http->end($response); |
保存,即可。
原创文章,作者:蓝洛水深,如若转载,请注明出处:https://blog.lanluo.cn/11675