1、什么是跨域?
2、如何解决?
跨域是前端所独有的,后端不存在跨域问题。是浏览器的一种安全保护手段,为了防止别人抓取、篡改你的网站数据信息。遵循同源策略、同协议(http)、同域名、同端口,少一项不同就会出现跨域问题。

2-1、CORS跨域:服务端设置,前端直接调用。
后台设置允许某站点访问,就能访问。(如:easy-mock设置的任何人都可以访问,最近网站好像崩了)
let url=‘’
axios.get(url).then( ()=>{ }
)

2-2、jsonp跨域: 前端适配,后端配合。前后端同时改造
前端安装jsonp插件,在使用jsonp时会发送一个callback过去,后端往callback内写一些数据。Jsonp不是真正的XHR请求,是js(脚本)请求

let url=‘’
jsonp(url,(err,res)=>{
let result = res
this.data = result
})
2-3、跨域--接口代理(如:访问的/a接口实际代理到/b接口了)
修改服务器配置。通过修改nginx服务器配置来实现,前端修改,后端不动。
在vue.config.js内设置端口号,(代理)proxy
proxy: {
[process.env.VUE_APP_BASE_API]: {target: `http://localhost:${port}/mock`,changeOrigin: true,pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
}
},'/api': {target: 'http://127.0.0.1:8000',changeOrigin: true
}
},
当内部请求遇到/api时,就会偷偷换成http://127.0.0.1:8000这个里面的接口,但是去访问的时候还是localhost:8080,