ThinkPHP 5 AJAX跨域请求头设置实现过程解析


Posted in PHP onOctober 28, 2020

最近用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,以上几步就解决跨域请求问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 PHP
用 PHP5 轻松解析 XML
Dec 04 PHP
PHP4与PHP5的时间格式问题
Feb 17 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
Aug 09 PHP
php中防止恶意刷新页面的代码小结
Oct 31 PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 PHP
PHP实现货币换算的方法
Nov 29 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
Jun 06 PHP
php分享朋友圈的实现代码
Feb 18 PHP
基于PHP实现邮箱验证激活过程详解
Oct 28 #PHP
THINKPHP5分页数据对象处理过程解析
Oct 28 #PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 #PHP
Laravel配合jwt使用的方法实例
Oct 25 #PHP
数据结构之利用PHP实现二分搜索树
Oct 25 #PHP
如何运行/调试你的PHP代码
Oct 23 #PHP
php redis setnx分布式锁简单原理解析
Oct 23 #PHP
You might like
MySQL的FIND_IN_SET函数使用方法分享
2012/03/27 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
php动态生成函数示例
2014/03/21 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
php简单防盗链实现方法
2015/07/29 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
Nodejs学习笔记之Global Objects全局对象
2015/01/13 NodeJs
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
easyui简介_动力节点Java学院整理
2017/07/14 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
Python字符串切片操作知识详解
2016/03/28 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
Python数据集切分实例
2018/12/08 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
电视节目策划方案
2014/05/16 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
《实心球》教学反思
2016/02/23 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书