phpStudy搭建本地后台环境并解决跨域问题

之前写了一篇,用express搭建后台模拟接口数据。现在要使用PHP写后台接口(笔者用的时ThinkPHP),怎么用phpStudy搭建个本地服务呢。

一、phpStudy搭建本地后台环境

  1. 打开phpStudy控制面板,点击 MySQL管理器 ,选择 站点域名设置
  2. 新增一个站点域名
  1. 设置本地hosts:打开C:\Windows\System32\drivers\etc\hosts文件,末尾添加一句,
127.0.0.1  www.test.com

到这里就配置好了,在浏览器中访问www.test.com就可以打开后台了。

用ajax,axios等调用后台接口时,同样会遇到接口跨域访问的问题,报错如下。

二、允许跨域访问

  • 方法1:打开phpStudy控制面板,点击 其他选择菜单 > 打开配置文件 > vhosts-conf

    找到刚添加的站点域名,在root后面添加一段代码
add_header 'Access-Control-Allow-Origin' '*'; // 允许跨域的地址,* 表示全部
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; // 允许的请求方法
add_header 'Access-Control-Allow-Headers' 'version, access-token, user-token'; // 允许的请求头属性
  • 方法2:后台处理前端请求时,应该会有一个Response类文件,加上一段代码,类似这样:
class Response {
   // 成功返回
    static public function success($data, $code = null) {
        $code = is_null($code) ? ReturnCode::SUCCESS : $code;
        $msg = is_null(self::$successMsg) ? '操作成功' : self::$successMsg;
        $returnData = array(
            'code' => $code,
            'msg'  => $msg,
            'data' => $data
        );
        if (!empty(self::$debugInfo)) {
            $returnData['debug'] = self::$debugInfo;
        }
        header('Content-Type:application/json; charset=utf-8');
        
        // 加上这一段 添加响应头
        header("Access-Control-Allow-Origin: *"); // 允许跨域的地址,* 表示全部
        header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS"); // 允许的请求方法
        header("Access-Control-Allow-Headers: version, access-token, user-token"); // 允许的请求头属性
        // 加上这一段 添加响应头

        $returnStr = json_encode($returnData);
        ApiLog::setResponse($returnStr);
        ApiLog::save();
        exit($returnStr);
    }
}

应该还要其他的方法搭建服务以及解决跨域的问题,欢迎分享你的方法。

感谢浏览,欢迎评论指正,转载请标明出处。

你可能感兴趣的:(phpStudy搭建本地后台环境并解决跨域问题)