thinkphp5.1解决跨域问题

最近项目开发中,前后端是分离的,各自有自己的接口,一般情况下,后端程序员开发环境中,通过postman或其他测试工具调用接口都没有什么问题。等到前端程序员静态页面完成后,和后端程序员调试接口的时候,最大的问题就是跨域问题,下面就讲下thinkphp5.1解决跨域问题的方法(tp6可参考5.1)。

前后端接口交互

后端配置跨域

后端接口示例:获取我的联系人接口

请求方式,请求头及参数说明如下:

接口URL:http://api.test.kaifazhe.site/im/v1/AddressBook/contactList

通过postman测试返回数据:

tp5.1的路由配置如下(5.1开发手册也有详细的说明),我做的是分组路由,所以在/route/im.php文件中简单配置就ok了。

接口文件代码:

这是后端的所有代码及配置。

前端调用接口与跨域

接下来说下前端如何实现跨域:在本地随便新建一个html文件,我就在桌面新建了一个demo文件和demo.html文件

demo.html代码:

你好

​$(function(){varurl ="http://api.test.kaifazhe.site/im/v1/AddressBook/contactList";        $.ajax({type:"GET",url: url,data:'',dataType:"json",// ajax设置header方式一// headers:{//    'Authorization':'Bearer 14cae06f-bfda-4b85-892a-3f310caa10da',// },// ajax设置header方式二beforeSend:function(request){request.setRequestHeader("Authorization",'Bearer e579b279-9868-44ce-a8e0-36a430c53d1b');            },success:function(data){console.log("sucess");            }        });    });

打开浏览器测试结果:

Response查看结果

至此:tp5.1的跨域问题已解决,在实际项目有成功实践。

PS:不管你前端是小程序开发的还是vue等框架,亲测有效的哦

你可能感兴趣的:(thinkphp5.1解决跨域问题)