从POST请求重定向

时间:2019-06-27 11:49:17

标签: node.js express xmlhttprequest fetch

很简单,我有一个路由器,仅当它用POST调用时才进行重定向。

router.post("/redirect", (req, res) => {
  res.redirect("/logged");
})

从客户端页面的XHR / Fetch请求中调用它。

const btnTest = document.querySelector("#js-redirect");

btnTest.addEventListener("click", () => {
  fetch("/redirect", {
    method: "POST"
  });
});

使用Morgan,服务器响应:

POST /redirect 302 9.000 ms - 29
GET /logged 200 2.816 ms - 9

但是在客户端页面上什么都没有发生!

我可以将响应发送到客户端页面,然后进行window.location重定向。但是,它不应该以其他方式起作用吗?

1 个答案:

答案 0 :(得分:-1)

使用fetch时,实际上是在告诉浏览器您将处理响应。浏览器现在不负责您的请求处理,因此不会重定向。

您可以从响应中读取标头并检查状态,查看是否有Location标头,然后自己进行重定向。