php跨域问题

再api下加一个middleware.php文件就好了,我的是这样处理

<?php
// 全局中间件定义文件
return [
    think\middleware\AllowCrossDomain::class
];

如果自定了数据返回值

/**
 * 生成json数据返回值
 */
function XXXJsonReturn($msg, $status = -1, $data = [])
{
    
    
    header('Content-Type:application/json; charset=utf-8');
    header("Access-Control-Allow-Origin: *");
    $rs = ['status' => $status, 'msg' => $msg];
    $rs['data'] = $data;
    exit(json_encode($rs, JSON_UNESCAPED_UNICODE));
}

记得加一个header(“Access-Control-Allow-Origin: *”);

线上服务端还是不行的话,就在入口文件加

if($_SERVER['REQUEST_METHOD'] == 'OPTIONS'){
    
    
    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, token");
    header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
    file_put_contents('option.txt',json_encode($_REQUEST));
    exit;
}

header('Access-Control-Allow-Origin:*');
// 响应类型
header('Access-Control-Allow-Methods:*');
// 响应头设置
header('Access-Control-Allow-Headers:content-type,token,id');
header("Access-Control-Request-Headers: Origin, X-Requested-With, content-Type, Accept, Authorization, token");

猜你喜欢

转载自blog.csdn.net/weixin_43018356/article/details/114549156