vue-跨域问题

同源策略

什么是浏览器的同源策略

  • 当前浏览器发起Ajax的时候要求,当前页面,和请求地址同源
  • 当前页面 : http://localhost.com:3000
  • 请求的服务器地址 : http://www.baidu.com (当前地址,与请求地址不同源,浏览器不会让你请求成功)
http	协议
www		子域名
baidu.com	主域名
:3000		端口号,
m.baidu.com		q.baidu.com 
localhost:8000 		localhost:3000 ,
必须协议,子域名,主域名,端口号,一致才为同源地址

什么是跨域 ,实现跨域的方法有那些

跨域

  • 跨域是指: 绕过同源策略跨域名获取数据,(所有的跨域都需要后端支持)

跨域的方法

1. jsonp

2. CRS 浏览器响应头信息允许跨域(Access-Control-Allow-Origin : *) 允许任何域名访问 --后端设置

3. 本地服务器代理跨域—proxy

什么是jsonp?

封装-Jsonp

服务器跨域的实现原理

  • 服务器没有浏览器一说,所以没有同源限制
  • 去请求本地服务器的地址——本地服务器——去请求真正的地址
  • 请求回来数据后——本地服务器——转给当前Ajax请求

vue-cli 的代理跨域

代理跨域的原理

就是让原有的地址去访问数据,访问数据完成之后,再将获取数据的地址改成我们本地服务器的地址,
这样就不会被浏览器的同源策略进行拦截

代理跨域的实现方法

  • vue脚手架基于webpack ,webpack本地服务器devServer
  • 想实现代理跨域,只需要实现 配置devServer
  • vue配置webpack 通过vue.config.js 要在根目录 新建一个vue.config.js
  • vue.config.js 需要重启
module.exports = {
	// devServer 配置本地服务器
	devServer : {
		// 自动打开浏览器
		open : true,
		// 自定义端口号,不推荐使用
		// port : 8080,
		// 代理地址
		proxy : {
			// 当本地服务器碰到有'/motor' 的参数地址的时候,就开始去代理
			'/motor' : {
				// 真正去请求数据的地址
				target : "https://www.dcdapp.com",
				// 是否跨域(求改请求源)
				changeOrigin : true,	
			}
		}
	}
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值