javascript 使用Needle发送发布请求后,将用户重定向到REST API的URL

qnakjoqk  于 2023-01-29  发布在  Java
关注(0)|答案(1)|浏览(121)

我正在使用一个REST API,作为对https://example.com/api这样的地址的POST请求的结果,它返回一个HTML网页(而不是JSON或其他数据格式)。
通常在前端处理这样的场景并不难管理使用这样的代码:

<form action="https://example.com/api" method="POST">
  <input type="text" name="param1" value="test1">
  <input type="text" name="param2" value="test2">
  <input type="submit">
</form>

在这种情况下,只需按下submit按钮,就可以加载带有正确参数的URL https://example.com/api,但是,我无法使用Node js和Needle库在服务器端代码中复制这一点。
我使用了如下代码片段:

let params = {
  param1: "test1",
  param2: "test2"
};

let options = {
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  }
};

needle.post("https://example.com/api", params, options, function (err, response) {
  console.log(response.body);
  //what should i do here?
});

但是现在我还不知道如何将客户端重定向到该地址。response.body属性包含网页HTML,但直接使用以下命令发送:

res.send(response.body);

由于缺少css文件和相对网址,导致网页外观失真。另外,在回调中直接重定向到网页似乎也不起作用:

res.redirect("https://example.com/api");
1l5u6lss

1l5u6lss1#

我想我自己已经明白了,我们可以像GET请求一样使用URL查询:

res.redirect("https://example.com/api?param1=test1&param2=test2");

相关问题