本篇文章给大家分享的是有关利用vue实现跨域的方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
跨域问题的出现是因为浏览器的同源策略问题,所谓同源:就是两个页面具有相同的协议(协议),主机(主机)和端口号(港口),它是浏览器最核心也是最基本的功能,如果没有同源策略我们的浏览器将会十分的不安全,随时都可能受到攻击。
当我们请求一个接口的时候,出现如:Access-Control-Allow-Origin字眼的时候说明请求跨域了
跨域问题
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,这个重写很重要! ! !
2。在创建axios实例的时候将baseURL设置为/api,这时候我们的跨域就已经完成了。
3。假如请求的真正地址为:http://121.121.67.254:8185核心/getdata/用户信息,但我们在浏览器上会看到是这样的:http://localhost: 8080/api/核心/getdata/用户信息,多了个/api,但并不影响我们请求数据。
以上就是利用vue实现跨域的方法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。