最近用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'
- ],
- ];
|