利用vue实现跨域的方法

  介绍

本篇文章给大家分享的是有关利用vue实现跨域的方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

跨域问题的出现是因为浏览器的同源策略问题,所谓同源:就是两个页面具有相同的协议(协议),主机(主机)和端口号(港口),它是浏览器最核心也是最基本的功能,如果没有同源策略我们的浏览器将会十分的不安全,随时都可能受到攻击。

当我们请求一个接口的时候,出现如:Access-Control-Allow-Origin字眼的时候说明请求跨域了

利用vue实现跨域的方法

跨域问题

1。使用jsonp实现,网页通过脚本标签向服务器请求json数据,服务器受到请求后,将数据放在一个指定名字的回调函数的参数里面传给前端。

& lt;脚本https://www.yisu.com/zixun/src=" http://www.test.com/getData& # 63;调=getData "> //向服务器test.com发出请求,该请求的查询字符串有一个回调参数,用来指定回调函数的名字//处理服务器返回回调函数的数据   <脚本type=" text/javascript”>//服务器返回的数据会放到回调函数里面   函数getData (res) {//处理获得的数据   console.log (res.data)   }   

2。使用Jquery ajax实现,

. ajax({美元   url: & # 39; http://www.test.com: 8888/getdata # 39;   类型:& # 39;得到# 39;   数据类型:& # 39;jsonp # 39;//请求方式为jsonp   jsonpCallback:“handleCallback"//自定义回调函数名   数据:{}   })

3。在vue开发中实现跨域:在vue项目根目录下找到vue.config。js文件(如果没有该文件则自己创建),在代理中设置跨域

 devServer: {
  代理:{//配置跨域
  & # 39;/api # 39;: {
  目标:& # 39;http://121.121.67.254:8185 & # 39;//这里后台的地址模拟的,应该填写你们真实的后台接口
  changOrigin:真的,//允许跨域
  pathRewrite: {/*重写路径,当我们在浏览器中看到请求的地址为:http://localhost: 8080/api/核心/getData/用户信息时
  实际上访问的地址是:http://121.121.67.254:8185核心/getData/用户信息,因为重写了/api
  */& # 39;^/api # 39;: & # 39; & # 39;
  }
  },
  }
  },

在vue中使用代理进行跨域的原理是:将域名发送给本地的服务器(启动vue项目的服务,loclahost: 8080),再由本地的服务器去请求真正的服务器。

以下是我在开发vue项目中实现跨域的步骤:

1。在代理中设置要访问的地址,并重写/api为空的字符串,因为我们真正请求的地址是没有带/api,这个重写很重要! ! !

利用vue实现跨域的方法

2。在创建axios实例的时候将baseURL设置为/api,这时候我们的跨域就已经完成了。

利用vue实现跨域的方法

3。假如请求的真正地址为:http://121.121.67.254:8185核心/getdata/用户信息,但我们在浏览器上会看到是这样的:http://localhost: 8080/api/核心/getdata/用户信息,多了个/api,但并不影响我们请求数据。

利用vue实现跨域的方法

以上就是利用vue实现跨域的方法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

利用vue实现跨域的方法