跨域产生的原因:
主要是不同源导致的。
不同源包括协议,IP或者端口号不同都会产生跨域
跨域解决方式
方式一(CORS)
这个方法是最简单的方法,仅仅需要由服务器发送一个响应头就可以了
header("Access-Control-Allow-Origin:*");
允许任意来源的请求来访问数据
方式二(代理)
devServer: {
proxy: {
// 如果请求地址以/api打头,就出触发代理机制
'/api': {
target: 'http://192.168.81.173:3000' // 我们要代理的真实接口地址
}
}
}
在配置文件中写
VUE_APP_BASE_API = '/api'
比如说现在我们服务器的网址为http://192.168.81.173:8888
而我们要请求的地址是http://192.168.81.173:3000/api/sys/login/
在发送请求时URL直接写成/sys/login/就好了,代理服务器会自动将地址修改为我们要请求的地址。
方式三(jsonp)
<script src="http://www.abc.com/index.php/?paraml=1&callback=fn"></script>
这个方法利用的主要是浏览器仅仅对XMLHttpRequest请求有同源的请求限制,而对标签属性没有,所以jsonp就相当于是利用了这个“漏洞”进行的解决的跨域问题。代用回调函数即可获取到返回的数据