我在http://localhost:9090/运行后端服务。所有以/api/*
开头的来电都应转发给它,前面没有/api
。因此,当我致电http://localhost:8080/api/my/route
时,它应代理http://localhost:9090/my/route
。
如果我使用以下选项:
proxy : [{
path : '/api/*',
target : 'http://localhost:9090'
}]
调用http://localhost:8080/api/my/route
时,后端服务会抱怨它无法找到路由/api/my/route
。
文档建议我可以使用node-http-proxy中的任何选项,但我无法确定要使用的正确选项。
我需要使用哪些选项来获得所需的结果?
答案 0 :(得分:7)
从webpack-dev-server版本> = 1.15.0开始,您可以使用记录在案的pathRewrite:
proxy: {
'/api': {
target: 'https://other-server.example.com',
pathRewrite: {'^/api' : ''}
}
}
答案 1 :(得分:1)
已编辑,版本< = 1.14.1 您可以使用“重写”选项。这是一个函数,将为每个匹配模式的请求调用(例如:'/ api / *')。该函数必须与签名函数(req,proxyoptions){}
匹配像这样:
proxy : [{
path : '/api/*',
target : 'http://localhost:9090',
// bypass
rewrite: function(req, options) {
// manipulate req here
// in your case I think it's removing the /api part of url
}
//
}]