ThinkPHP 5 AJAX跨域请求头设置实现过程解析
时间:2022-01-10
来源:互联网
在手机上看
手机扫描阅读
最近用thinkphp做项目,在测试环境时,存在接口的测试问题。在tp官网也没能找到相关的解决方法。自已看了一下源码,有如下的解决方案。
在项目目录下面,创建common/behavior/CronRun.php文件,文件内容如下:
<?php /** * Created by PhpStorm. * User: LiuYang * Date: 2017/3/9 * Time: 19:37 */ namespace app\common\behavior; use think\Exception; use think\Response; class CronRun { public function run(&$dispatch){ $host_name = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : "*"; $headers = [ "Access-Control-Allow-Origin" => $host_name, "Access-Control-Allow-Credentials" => 'true', "Access-Control-Allow-Headers" => "x-token,x-uid,x-token-check,x-requested-with,content-type,Host" ]; if($dispatch instanceof Response) { $dispatch->header($headers); } else if($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { $dispatch['type'] = 'response'; $response = new Response('', 200, $headers); $dispatch['response'] = $response; } } }
接着在项目中(tags.php)配置行为动作,如下:
<?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <[email protected]> // +---------------------------------------------------------------------- // 应用行为扩展定义文件 return [ // 应用初始化 'app_init' => [], // 应用开始 'app_begin' => [ 'app\\common\\behavior\\CronRun' ], // 模块初始化 'module_init' => [], // 操作开始执行 'action_begin' => [], // 视图内容过滤 'view_filter' => [], // 日志写入 'log_write' => [], // 应用结束 'app_end' => [ 'app\\common\\behavior\\CronRun' ], ];
ok,以上几步就解决跨域请求问题。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHP爱好者。
相关阅读 更多
-
2025年十大数字货币热钱包排行榜(安全热钱包推荐) 时间:2025-04-30
-
冷钱包是什么?冷钱包有什么优点?如何安全使用冷钱包? 时间:2025-04-30
-
备份助记词还需要备份私钥吗?助记词和私钥哪个重要? 时间:2025-04-30
-
TP钱包主钱包和子钱包助记词一样吗?钱包助记词所有钱包通用吗? 时间:2025-04-30
-
Bybit Web3钱包是什么?特色、功能、使用教学 时间:2025-04-30
-
虚拟币钱包的作用是什么?虚拟币钱包的作用和意义解析 时间:2025-04-30
今日更新
-
如何运行/调试你的PHP代码
阅读:18
-
数据结构之利用PHP实现二分搜索树
阅读:18
-
Laravel配合jwt使用的方法实例
阅读:18
-
Laravel 自动转换长整型雪花 ID 为字符串的实现
阅读:18
-
THINKPHP5分页数据对象处理过程解析
阅读:18
-
PHP tp5中使用原生sql查询代码实例
阅读:18
-
基于ThinkPHP删除目录及目录文件函数
阅读:18
-
PHP dirname功能及原理实例解析
阅读:18
-
PHP fopen中文文件名乱码问题解决方案
阅读:18
-
2020最新版 PhpStudy V8.1版本下载安装使用详解
阅读:18