3

我是 Node.js 的新手,并且很难理解如何为给定的路由/url 创建一个简单的代理。

我试图通过在我的 node.js(带有 express)服务器上使用代理来避免前端 javascript 日志记录框架的跨域问题。我正在使用node-http-proxy模块,但遇到了 request.body 始终为 JSON 的问题。我需要向日志服务器端点发送 url 编码的数据,而不是 JSON。因此,即使我将 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
});
4

0 回答 0