用php来开发微信小程序接口是很方便的一件事,在国内的php框架中,thinkphp框架省时省心,当然如果您初次接触接口编码可能会遇到一些问题,今天为大家调用接口报Access-Control-Allow-Origin的解决方法。
笔者在微信小程序中调用接口时发生错误,错误代码如下:
Failed to load ad http://www.xxxx.cn/index/Test/testJson: No No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'n 'http://localhost:8080' is' is therefore not allowed access.
其实这主要是头文件的问题,哪怕您使用return json($data); 这样返回json数据也会报错,因为你输出的是json但您未在头文件中设置,所以给您报请求资源错误。
使用以下语句可解决此问题。
$header['Access-Control-Allow-Origin'] = '*';
$header['Access-Control-Allow-Headers'] = 'X-Requested-With,Content-Type,XX-Device-Type,XX-Token';
$header['Access-Control-Allow-Methods'] = 'GET,POST,PATCH,PUT,DELETE,OPTIONS';
$result = [
'code' => 1,
'msg' => '测试',
];
$response = Response::create($result, 'json')->header($header);
return $response;
当然您直接继承Rest类也可以解决此问题。示例代码下载地址:https://www.jianzhan100.com/upload/portal/20180913/67305fcb02d77bad110c49fc93b709aa.zip