私は Node.js を初めて使用し、特定のルート/URL の単純なプロキシを作成する方法を理解するのに苦労しています。
node.js (高速) サーバーでプロキシを使用して、フロントエンドの JavaScript ロギング フレームワークのクロスドメインの問題を回避しようとしています。モジュールを使用してnode-http-proxy
いますが、request.body が常に JSON であるという問題に遭遇しました。JSON ではなく、URL エンコードされたデータをログ サーバーのエンドポイントに送信する必要があります。そのため、URL エンコードされたデータをリクエストの本文としてプロキシに送信しても、プロキシは JSON データをリクエストの本文としてロギング サーバーに送信します。
プロキシで本文を URL エンコードされた文字列に変換しようとしましたが、さらに奇妙なことに、本文の先頭に引用符が付加されます。単一の二重引用符。
助けてくれてありがとう。これが私のルートです:
this.match('/proxy/logging', function(req, res, next){
req.url = build.logging_url.path;
req.body = require('querystring').stringify(req.body);
req.headers['content-length'] = req.body.length;
proxy.proxyRequest(req, res, {
host: build.logging_url.host
, port: build.logging_url.port
});
}, { via: 'POST' });
jqueryでの私のajax呼び出しは次のとおりです。
$.ajax({
type: 'POST',
url: POSTURL,
data: {foobar : "foobar"},
success: on_post_success,
error: on_post_error
});