什么是跨域
浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域
为什么会出现跨域问题
出于浏览器的同源策略限制
同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,
如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的
浏览器只是针对同源策略的一种实现。
同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。
所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)
怎么解决跨域问题
那么怎么解决跨域的问题呢?这篇文章会介绍两种比较常见的方法 JSONP 和 代理
JSONP
JSONP是JSON with Padding的缩写
<script>标签的跨域是不受同源策略限制的。那么,我们可以这样:我们向后端请求一个js文件,
在这个js文件当中,返回一个函数的执行,而我们想要得到的数据,是这个函数的参数
JSONP只能处理GET请求,只是权宜之计
代理
跨域只是浏览器向服务器发送请求的时候,浏览器的限制。而服务器和服务器之间是没有跨域的限制的。反向代理是利用代理服务器接收到请求之后,转发给真正的服务器,并把结果返回到浏览器上
在vue框架中vue.config.js文件,里面放入如下内容:
module.exports = {
devServer: {
proxy: 'http://localhost:7001',
}
}
}
在react框架中pachage.json文件,里面放入如下内容:
"proxy": "http://localhost:7001",