微信小程序开发接口报Access-Control-Allow-Origin错误

2018-09-13 16:45
摘要:用php来开发微信小程序接口是很方便的一件事,在国内的php框架中,thinkphp框架省时省心,当然如果您初次接触接口编码可能会遇到一些问题,今天为大家调用接口报Access-Control-Allow-Origin的解决方法。

用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.sitekaifa.com/upload/portal/20180913/67305fcb02d77bad110c49fc93b709aa.zip