thinkphp5.1*版本 做api接口实践记录 二 问题记录

一:开始调试与错误信息展示

config 文件下 app.php

将 show_error_msg=false 改为True;

再将

'app_debug' => false 改为True;

二:解决跨域

方法一:路由后面跟上 ->allowCrossDomain();

Route::rule('useradd','api/UserController/adduser')->allowCrossDomain();

方法二:定一个基础的控制器类 解决跨越

namespace app\api\common\controller;

use think\Controller;
use think\Request;

class Common extends Controller
{
    public $param;
    public function initialize()
    {
//      parent::initialize();
        /*防止跨域*/      
        header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
        header('Access-Control-Allow-Credentials: true');
        header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
        header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, authKey, sessionId");
        $param =  $this->request->param();//一次性获取所有参数写法           
        //$param = 'd';       
        $this->param = $param;
    }

    
}

三:TP5.1 initialize初始化方法(不是_initialize)--------这个贼坑!!!! 具体看看官网文档

class Common extends Controller
{   
    //检查是否登录
    public function initialize()
    {
         if(!session('username') || !session('id')){
             $this->error('请先登录!',url('/admin/login/index'));
         }
    }    
 
}

 

 

转载于:https://www.cnblogs.com/lovelgx/articles/10903984.html

你可能感兴趣的:(thinkphp5.1*版本 做api接口实践记录 二 问题记录)