跨域:
1.为什么出现跨域问题?
由于浏览器的同源策略造成的,是浏览器为JavaScript施加的安全限制,为了保证网站不被他人恶意攻击.
2.解决办法有几种?怎么解决?原理是?
解决办法1:cors(跨域资源共享)
服务器设置 Access-Control-Allow-Origin响应头(后端在响应中写的响应头)
解决办法2:jsonp
通过script的src来请求第三方服务器的数据,因为script的src不受同源策略的限制
步骤:
(1)创建一个script标签
(2)src里设置接口地址
(3)接口参数带一个自定义参数,不然后台无法返回数据
(4)通过定义函数名去接收后台返回的数据
缺点:只能发送get请求,所以现在不常用
解决办法3:反向代理
在vue.config.js文件中配置代理服务器,服务器之间没有跨域问题,所以代理服务器向目标服务器发送请求,目标服务器返回数据给代理服务器,然后代理服务器返回数据到前端项目