共计 2216 个字符,预计需要花费 6 分钟才能阅读完成。
此前已经讲过两次关于跨域的问题。
VUE 前后端分离时,本地小皮面板 400 等错误解决
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 <[email protected]>
// +———————————————————————-
// [应用入口文件]
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);
|
保存,即可。
正文完