节点JS反向代理-POST引发404错误

时间:2019-01-23 13:07:52

标签: node.js odata reverse-proxy

我有一个以下节点js服务器:

var express  = require('express');
var app      = express();
var httpProxy = require('http-proxy');
var apiProxy = httpProxy.createProxyServer();
var serverOne = 'http://<address>:<port>/sap/opu/odata/SAP/Z_ATTENDANCE_SRV/';

app.use(express.static('webapp'));
app.use(express.static('./'));

app.get("/*", function(req, res) {
    console.log('redirecting to Server1');
    apiProxy.web(req, res, {target: serverOne});
});
app.listen(3000);

使用localhost:3000/AttendanceSet之类的GET请求时,它可以正常工作。但是当我像localhost:3000/AttendanceSet这样调用POST请求时,出现以下错误:

The following problem occurred: HTTP request failed404,Not Found,<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot POST /AttendanceSet</pre>
</body>
</html>
 -  

如何更改服务器代码以使其正常工作?谢谢。

1 个答案:

答案 0 :(得分:0)

尝试使用app.all,以便使用相同的处理程序处理所有不同的HTTP动词。

app.all("/*", function(req, res) {
    console.log('redirecting to Server1');
    apiProxy.web(req, res, {target: serverOne});
});