【发布时间】:2021-02-14 00:49:51
【问题描述】:
我需要从运行在端口 8080 上的 vue.js 开发环境中查询从端口 3000 上的 https://github.com/o1lab/xmysql 生成的自动路由。
vue.config.js:
module.exports = {
devServer: {
proxy: {
"/api": {
target: "http://localhost:80", // Works perfeclty
},
"/": {
target: "http://localhost:80", // Works perfectly
},
"/generated": { // Not working
target: {
port: 3000
},
secure: false,
ws: false,
changeOrigin: true
}
},
hot: true,
liveReload: true,
}
};
xmysql 参数:
xmysql -h localhost -u root -p password -n 3000 -a /generated/ -d myDatabase
我的 vue.js axios "get" 查询:
axios
.get('/generated/meetings', {
headers: {
'Access-Control-Allow-Origin': 'all',
}
})
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error);
});
错误:
Cannot GET /generated/meetings
我可以将 localhost:3000 上的 localhost 路由访问到我的 firefox 导航器中,它们工作得非常好:
代理似乎无法正常工作,知道吗?
我已经尝试了其他 vue.config.js 参数但没有运气:
devServer: {
proxy: {
"/api": {
target: "http://localhost:80",
// ,pathRewrite: {'^/api' : ''}
},
"/": {
target: "http://localhost:80",
},
"/generated": {
target: "http://localhost:3000",
pathRewrite: { '/generated': '' },
secure: false,
ws: false,
changeOrigin: true
}
},
hot: true,
liveReload: true,
}
唯一有效的是这个查询:
axios
.get('localhost:3000/generated/meetings', {
headers: {
'Access-Control-Allow-Origin': 'all',
}
})
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error);
});
但是,有一个CORS问题,我无法得到'response',即使它显示在firefox控制台查询中,我也只能得到错误。
【问题讨论】:
标签: node.js vue.js proxy routes webpack-dev-server