【发布时间】:2021-05-31 08:30:19
【问题描述】:
我正在构建 MEAN 堆栈应用程序,所以我在后端节点 + 快速服务器,前端有 Angular。
Atm 我需要通过向远程非 cors 服务器发送 POST 请求来获取数据。 google了一天,明白我需要建立一个代理中间件。尝试在后端服务器上使用它:
app.use(
"/getPrice",
createProxyMiddleware({
target: someurl,
changeOrigin: true,
logLevel: "debug",
onProxyReq(proxyReq, req, res) {
proxyReq.setHeader("X-DV-Auth-Token", sometoken);
proxyReq.setHeader("Access-Control-Allow-Origin", "*");
proxyReq.setHeader("Content-Type", "application/json");
req.body = JSON.stringify(req.body);
},
})
);
但是请求没有返回任何东西。 另一方面,从 PostMan 尝试相同的 url、payload 和 headers,我得到了我需要的数据的响应。
但是 PostMan 只提供基于请求的解决方案,我不能采用这种解决方案来与 express 和 http-proxy 中间件一起使用
var request = require('request');
var options = {
'method': 'POST',
'url': someurl,
'headers': {
'X-DV-Auth-Token': sometoken,
'Content-Type': 'application/json',
'Cookie': somecookie
},
body: JSON.stringify({requestBodyObject})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
请指出我可能遗漏的地方,或者建议如何将 PostMan 的代码用于 express 和 http-proxy 解决方案。
提前致谢
【问题讨论】:
标签: node.js angular express cors http-proxy-middleware