nodejs でクエリ文字列パラメーターを使用してリクエストをプロキシするにはどうすればよいですか? 現在 Express と http-proxy を使用していますか?
Express と http-proxy モジュールを使用して、HTTP GET リクエストを私の側の特定のパスから、同じサーバー上で実行されているが別のポートで実行されているサードパーティの API にプロキシする nodejs アプリケーションがあります (したがって、同じオリジンの問題が発生し、プロキシー)。これは、クエリ文字列パラメーター、つまり「?name=value」を使用してバックエンド API で REST 関数を呼び出すまでは正常に機能します。その後、404 を取得します。
var express = require('express');
var app = express();
var proxy = require('http-proxy');
var apiProxy = proxy.createProxyServer();
app.use("/backend", function(req,res){
apiProxy.web(req,res, {target: 'http://'+ myip + ':' + backendPort + '/RestApi?' + name + '=' + value});
});
Chrome のコンソールには次のように表示されます。
"GET http://localhost:8080/backend 404 (Not Found)"
注: 私は後でエクスプレスで他のものを使用しますが、プロキシ行の前ではなく、パスをルーティングするときに、より具体的なものからより一般的なものに移行します。バックエンドは、ブラウザで同じプロトコル://url:port/path?name=value を使用して問題なく直接アクセスできます。