webpack配置实现跨域请求
配置webpack的前提条件配置webpack-dev-server的代码展示相关参数参数的详细介绍
最后附上全部 webpack.config.js 配置的代码
配置webpack的前提条件
先是要安装:webpack-dev-server 插件 ,npm i webpack-dev-server配置webpack ;
配置webpack-dev-server的代码展示
在 webpack.config.js 中配置代码
devServer
: {
historyApiFallback
: true,
hot
: true,
inline
: true,
contentBase
: "./app",
proxy
: {
"/api": {
target
: 'https://www.baidu.com',
pathRewrite
: {'^/api' : ''},
changeOrigin
: true,
secure
: false,
},
'/api2': {
.....
}
},
},
在页面上就可以实现跨域请求了
this.$axios
.get("/api/app/machineInfo/queryMachineList").then(result
=> {
console
.log(result
)
})
相关参数参数的详细介绍
‘/api’ ,捕获API的标志,如果API中有这个字符串,那么就开始匹配代理, 比如API请求/api/users, 会被代理到请求 http://www.baidu.com/api/users 。target ,代理的API地址,就是需要跨域的API地址。 地址可以是域名,如:http://www.baidu.com 也可以是IP地址:http://127.0.0.1:3000 如果是域名需要额外添加一个参数changeOrigin: true,否则会代理失败。pathRewrite ,路径重写,也就是说会修改最终请求的API路径。 比如访问的API路径:/api/users, 设置pathRewrite: {’^/api’ : ‘’},后, 最终代理访问的路径:http://www.baidu.com/users, 这个参数的目的是给代理命名后,在访问时把命名删除掉。
; 4. changeOrigin, 这个参数可以让target参数是域名; 5. secure , secure: false,不检查安全问题。 设置后,可以接受运行在 HTTPS 上,可以使用无效证书的后端服务器;
最后附上全部 webpack.config.js 配置的代码
const path
= require('path')
const htmlWebpackPlugin
= require('html-webpack-plugin')
const VueLoaderPlugin
= require('vue-loader/lib/plugin');
module
.exports
= {
entry
: path
.join(__dirname
, './src/main.js'),
output
:{
path
: path
.join(__dirname
, './dist'),
filename
: 'bundle.js'
},
devServer
: {
historyApiFallback
: true,
hot
: true,
inline
: true,
contentBase
: "./app",
proxy
: {
"/api": {
target
: 'https://vm.fowotek.com',
pathRewrite
: {'^/api' : ''},
changeOrigin
: true,
secure
: false,
}
},
},
plugins
: [
new htmlWebpackPlugin({
template
: path
.join(__dirname
,'/src/index.html'),
filename
: 'index.html'
}),
new VueLoaderPlugin()
],
module
:{
rules
: [
{ test
:/\.css$/, use
: ['style-loader','css-loader']},
{ test
:/\.less$/, use
: ['style-loader','css-loader','less-loader']},
{ test
:/\.scss$/, use
: ['style-loader','css-loader','scss-loader']},
{ test
:/\.(jpg|png|gif|bmp|jpeg)$/, use
: ['url-loader?limt&name=[hash:8]-[name].[ext']},
{ test
:/\.(ttf|eot|svg|woff|woff2)$/, use
: ['url-loader']},
{ test
:/\.vue$/, use
: 'vue-loader'},
{ test
: /\.scss$/, loaders
: ['style', 'css', 'sass']}
]
},
resolve
: {
alias
: {
"vue$": 'vue/dist/vue.js'
}
}
}