为什么会出现跨域?

122 阅读1分钟

跨域:

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文件中配置代理服务器,服务器之间没有跨域问题,所以代理服务器向目标服务器发送请求,目标服务器返回数据给代理服务器,然后代理服务器返回数据到前端项目