ThinkPHP 5 中AJAX跨域请求头设置方法
2023-09-11 14:19:50 时间
最近用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 <liu21st@gmail.com> // +---------------------------------------------------------------------- // 应用行为扩展定义文件 return [ // 应用初始化 'app_init' => [], // 应用开始 'app_begin' => [ 'app\\common\\behavior\\CronRun' ], // 模块初始化 'module_init' => [], // 操作开始执行 'action_begin' => [], // 视图内容过滤 'view_filter' => [], // 日志写入 'log_write' => [], // 应用结束 'app_end' => [ 'app\\common\\behavior\\CronRun' ], ];
ok,以上几步就解决跨域请求问题。
相关文章
- rails应用ajax之一:使用纯js方法
- 浅谈NT下Ring3无驱进入Ring0的方法
- Linux centos7下php安装cphalcon扩展的方法
- Ajax技术使用之ajax与模态框结合的妙用
- CSS和JavaScript以及Ajax实现预加载图片的方法及优缺点分析
- 原生JS封装ajax方法
- 使用wordpress自带ajax方法
- Jquery Ajax调用aspx页面方法
- Jquery.ajax报parseerror Invalid JSON错误的原因和解决方法:不能解析
- jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
- Atitit 可读性的艺术 目录 1. 原则类1 2. 方法类2 2.1. 1.8. 选择选择表格化32 2.2. 体现了“声明式编程”的风格,即只要说明意图,而不需要写出处理细节。2 2
- 前后端交互模式大总结 艾提拉 总结 attilax总结 目录 1. 通过ajax ajax就是js的网络api 完全解耦合 推荐1 1.1. Query Ajax 操作函数1 1.2. 服务
- Java项目部署目录结构与部署方法 打包方法attilax总结 目录 1.1. Java web项目部署目录结构1 2. Springboot项目的部署结构2 3. Java项目的开发模式下目录
- vuejs路由传参的多种方法总结
- Py之numpy:numpy库的使用方法之基础函数(np.concatenate/np.meshgrid等)简介、使用方法之详细攻略
- Java——ThreadLocal概述、解决SimpleDateFormat出现的异常、内存泄漏、弱引用、remove方法
- 超简易对比简单工厂模式和工厂方法模式
- 摸索出来的chrom调试前后台数据(Java&&Ajax)交互的方法分享一下咯!!!
- ubuntu使用ssh登入不执行.bashrc解决方法
- html的下拉框的几个基本使用方法
- VC中获取窗体句柄的各种方法
- 关于Jquery中ajax方法data参数用法的总结
- Selenium基础篇之屏幕截图方法