thinkphp在入口文件处理index.php中处理跨域问题代码详解
ThinkPHP
2026-03-28 16:45:56
跨域是开发中最为常见的请求报错,前端开发通过指定域名及接口请求数据,但在数据请求过程中出现跨域,这就需要后端开发者对代码进行特定跨越处理以此来满足前端正常请求到数据。
跨域报错如下:
Access to fetch at '请求域名' from origin '跨域域名' has been blocked by CORS policy: Request header field source is not allowed by Access-Control-Allow-Headers in preflight response. thinkphp后端thinkphp中入口文件index.php加入如下代码:
<?php
// ========== 跨域处理 ==========
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS, PATCH');
header('Access-Control-Allow-Headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,Accept,source');
header('Access-Control-Expose-Headers: Content-Length,Content-Range');
// 处理 OPTIONS 预检请求
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
header('Access-Control-Max-Age: 1728000');
exit(0);
}
// ============================
// [ ThinkPHP 原有代码 ]
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';跨域设置注意项:
header('Access-Control-Allow-Origin: *');其中的*为所有域名均可访问,若这么设置需要注意。尽可能设置指定的域名可以请求数据。
六月初字帖坊小程序
你想要的字帖模板及工具,这里都有!
918篇文章
33人已阅读
六月初