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 相关文章推荐
PHP 中的类
Oct 09 PHP
PHP中return 和 exit 、break和contiue 区别与用法
Apr 09 PHP
深入理解PHP中的Session和Cookie
Jun 21 PHP
PHP中使用localhost连接Mysql不成功的解决方法
Aug 20 PHP
非常实用的PHP常用函数汇总
Dec 17 PHP
php删除指定目录的方法
Apr 03 PHP
php使用ob_flush不能每隔一秒输出原理分析
Jun 02 PHP
深入理解PHP内核(一)
Nov 10 PHP
php实现购物车功能(下)
Jan 05 PHP
Zend Framework数据库操作技巧总结
Feb 18 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
Sep 12 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 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
php MYSQL 数据备份类
2009/06/19 PHP
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
PHP Error与Logging函数的深入理解
2013/06/03 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
Thinkphp多文件上传实现方法
2014/10/31 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
Jquery AJAX 用于计算点击率(统计)
2010/06/30 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
Jquery Uploadify上传带进度条的简单实例
2014/02/12 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
jquery.validate.js 多个相同name的处理方式
2017/07/10 jQuery
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
swiper自定义分页器使用方法详解
2020/09/14 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
python之PyMongo使用总结
2017/05/26 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
Python Web版语音合成实例详解
2019/07/16 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
Java编程面试题
2016/04/04 面试题
《乡愁》教学反思
2014/02/18 职场文书
创先争优一句话承诺
2014/05/29 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书