跨域通常报错如下
达成 跨域报错的条件
若A地址和B地址协议域名端口不全相同,就说明请求是跨域的(跨域请求不一定会报错)
跨域请求报错的条件:浏览器的同源策略 和 请求是ajax类型 (只要破坏其中之一就不会报错)
跨域解决方法:
cors Chrome浏览器的扩展(仅限个人开发使用)
后端写代码(cors)在响应中添加必要的响应头,响应回来之后浏览器不报错
代理转发(将请求发送给代理服务器,代理服务器处理跨域后再发送给目标服务请求以 /API 开头)
后端的处理方法
代理转发方式:vue项目中跨域的解决方法
1. 将开发基地址改为本地地址:'/api' (必须写入/api)
2. 在vue.config.js中加入代码
proxy: {
// 如果请求地址以/api打头,就出触发代理机制
// http://localhost:9588/api/login -> http://localhost:3000/api/login
'/api': {
target: 'http://localhost:3000' // 我们要代理的真实接口地址
}
}
3. 一定要将mock请求地址注释掉 否则也会出错
// before: require('./mock/mock-server.js')
4. 在request中的baseURL写为:
baseURL: process.env.VUE_APP_BASE_API, // 设置axios请求的基础的基础地址
致敬我当码农的每一天!!!