跨域是浏览器的跨域 是由于浏览器的同源策略引起的 不符合 域名 、协议 、端口号 的请求都会出现跨域的问题
解决办法
1 .
最多的情况是后端处理跨域
2.前端的跨域
用jsonp来解决
JSONP 原理:
ajax 请求受同源策略影响,不允许进行请求,我们利用 script 标签的 src 属性不受同源策略的约束,利用这个特性 jsonp 需要以下步骤:
-
动态创建<script></script>(document.createElement('script'))
-
设置 src 属性,(src 中要包含参数 callback=fn)进行跨域请求
-
将 <script></script>添加到页面中执行 (body.appendChild('script'))
-
页面要提前定义好 callback。
-
后端会返回回调函数执行并包裹参数 callback(data) 备注: 服务端不再返回 JSON 格式的数据,而是返回回调函数包裹数据(fn({name:'tom',age:18}),在 src 中进行了调用,这样实现了跨域。
3.vue的跨域
用proxy来实现
在配置文件 vue.config.js中
定义一个devServer
里面定义proxy:要跨域的地址
devServer: {
proxy: "https://sug.so.360.cn",
}