PHP 封装接口类

本文介绍了在PHP环境中处理跨域预检请求的方法,通过在入口文件和后台接口控制器中设置相应HTTP头部,允许跨域请求。同时,定义了统一的接口响应格式,包括code、msg和data字段,以及快速响应数据的辅助方法。这有助于提升前后端交互的标准化和效率。
摘要由CSDN通过智能技术生成

跨域情况下,客户端先发送options预检请求,接口服务端需要对预检请求进行处理。

在入口文件 public/index.php中,增加代码如下:

//处理跨域预检请求
if($_SERVER['REQUEST_METHOD'] == 'OPTIONS'){
    //允许的源域名
    header("Access-Control-Allow-Origin: *");
    //允许的请求头信息
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
    //允许的请求类型
    header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
    exit;
}

所有后台接口,都需要进行跨域处理。

创建接口基础控制器类:项目目录下,执行以下命令

php think make:controller adminapi/BaseApi --plain

控制器文件 application/adminapi/controller/BaseApi.php中

创建初始化方法 _initialize()

//初始化方法
public function _initialize()
{
    parent::_initialize();
    //允许的源域名
    header("Access-Control-Allow-Origin: *");
    //允许的请求头信息
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
    //允许的请求类型
    header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
}

接口响应数据格式,统一约定为 包含code 、msg、data 三个字段的 json字符串。

在BaseApi控制器中,定义快速响应数据的方法如下:

function getJson($code,$msg,$data = []){
    $resulf = [
        'code' => $code,
        'msg' => $msg,
        'data' =>$data,
    ];

    return json($resulf);
}
	/**
     * 通用响应
     * @param int $code 错误码
     * @param string $msg 错误描述
     * @param array $data 返回数据
     */
    public function response($code=200, $msg='success', $data=[])
    {
        $res = [
            'code' => $code,
            'msg' => $msg,
            'data' => $data
        ];
       
        json($res)->send();die;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值