什么是跨域
跨域指浏览器不允许当前页面的所在的源去请求另一个源的数据。源指协议,端口,域名。只要这个3个中有一个不同就是跨域。 这里列举一个经典的列子:
协议跨域
http://a.baidu.com访问https://a.baidu.com;
#端口跨域
http://a.baidu.com:8080访问http://a.baidu.com:80;
#域名跨域
http://a.baidu.com访问http://b.baidu.com;
代理服务器实现前端跨域请求后端地址
1.config index.js下配置proxyTable
proxyTable: {
'/api': {
target: 'https://1.2.3.4:89', // 接口地址
changeOrigin: true, // 是否跨域
pathRewrite: { 、// 转发 '^/api': '' },
secure: false,
}
}
2.src/api/index.js 配置baseURL
const debug = process.env.NODE_ENV !== 'production'
const axInstance = axios.create({
baseURL: debug ? 'api' : 'http://1.3.4.5.6:89',
timeout: 10000,
responseType: 'json',
withCredentials: false, // 表示跨域请求时是否需要使用凭证
headers: {
token: store.state.axios.token,
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
}
})