接口的统一管理有什么好处?
1. 简化代码
2.有利于后期的维护
先来看一下统一管理后的代码
这种统一的管理方式让代码变得简洁清晰。
首先要对axios进行二次封装
1. 引入并使用二次封装的函数(函数的返回值是promise对象)
2. 发一次请求就在api下index.js中采用分别暴露的方式定义一个函数reqGoodsInfo(),二次封装后的函数(requests)的参数是一个配置对象,写法和axios语法一样(+请求地址和请求方式),将配置好的二次封装后的函数的返回值作为reqGoodsInfo()的返回值
此时为了测试这个接口是否能正常返回数据,我们将在入口文件main.js中执行测试,测试方法如下:
却发现后台报出404的错误?!
这是由于跨域造成的问题。
跨域:浏览器从一个域名的网页去请求另一个域名的资源时,出现域名、端口、协议任一不同,都属于跨域。
我们知道浏览器和服务器之间会存在跨域,而服务器与服务器之间不会存在跨域,所以在vue的官方文档中提供了一种跨域的解决方案就是配置代理服务器。
当你向某个服务器请求资源时,就通过代理服务器向指定服务器拿数据,因为服务器与服务器之间是不存在跨域问题的。这样跨域的问题就解决了。
解决跨域的方式还有两种方式,一种是jsonp、一种是CROS(官方推荐的方案)。