之前写了一篇,用express搭建后台模拟接口数据。现在要使用PHP写后台接口(笔者用的时ThinkPHP),怎么用phpStudy搭建个本地服务呢。
一、phpStudy搭建本地后台环境
- 打开phpStudy控制面板,点击
MySQL管理器
,选择站点域名设置
- 新增一个站点域名
- 设置本地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);
}
}
应该还要其他的方法搭建服务以及解决跨域的问题,欢迎分享你的方法。
感谢浏览,欢迎评论指正,转载请标明出处。
网友评论