webpack 开发时跨域问题的解决
1. 说明
webpack 内置了
http-proxy-middleware
可以解决 请求的 URL 代理的问题
2. API
需要代理的 pathname 要加
/
module.exports = {
devtool: 'cheap-module-source-map',
entry: './app/js/index.js'
output: {
path: path.resolve(__dirname, 'dev'),
// 所有输出文件的目标路径
filename: 'js/bundle.js',
publicPath: '/',
chunkFilename: '[name].chunk.js'
},
devServer: {
contentBase: path.resolve(__dirname, 'dev'),
publicPath: '/',
historyApiFallback: true,
proxy: {
// 请求到 '/device' 下 的请求都会被代理到 target: http://debug.xxx.com 中
'/device/*': {
target: 'http://debug.xxx.com',
secure: false, // 接受 运行在 https 上的服务
changeOrigin: true
}
}
}
}
3. 使用
注:使用的url 必须以
/
开始 否则不会代理到指定地址
fetch('/device/space').then(res => {
// 被代理到 http://debug.xxx.com/device/space
return res.json();
}).then(res => {
console.log(res);
})
fetch('device/space').then(res => {
// http://localhost:8080/device/space 访问本地服务
return res.json();
}).then(res => {
console.log(res);
})