使用proxy.conf.js代替可以proxy.conf.json。然后,您可以指定一个绕过函数,您可以在其中直接返回响应。代理的angular-cli文档中对此进行了提及,但并未提供很多详细信息。这是一个示例proxy.conf.js文件。
const PROXY_CONFIG = {
'/api': {
'target': 'http://localhost:5000',
'bypass': function (req, res, proxyOptions) {
switch (req.url) {
case '/api/json1':
const objectToReturn1 = {
value1: 1,
value2: 'value2',
value3: 'value3'
};
res.end(JSON.stringify(objectToReturn1));
return true;
case '/api/json2':
const objectToReturn2 = {
value1: 2,
value2: 'value3',
value3: 'value4'
};
res.end(JSON.stringify(objectToReturn2));
return true;
}
}
}
}
module.exports = PROXY_CONFIG;
Run Code Online (Sandbox Code Playgroud)
您需要在旁路函数中重新检查url,因为所有/api请求都将调用该url,然后直接为您希望返回的响应直接返回一个响应,其他响应仍将重定向到目标地址。您返回true来告诉代理请求已完成。
确保在运行时指定正确的文件ng serve --proxy-config proxy.conf.js。