簡體   English   中英

從前端javascript向后端node.js發送POST請求

[英]Send POST request from front-end javascript to back-end node.js

在前端腳本中,我有這樣的代碼來創建對服務器的 POST 請求。

    var xhr = new XMLHttpRequest();
    xhr.open("POST", "/visitor/detect/1", true);
    xhr.setRequestHeader('Content-Type', 'application/json');
    xhr.send(JSON.stringify({
        value: "test"
    }));

然后這是我在服務器中的路線

router.post('/visitor/detect/1', (req, res) => {
      console.log(req.body);
      res.redirect('/visitor/login');
});

我希望在成功發布請求后將頁面重定向到 /visitor/login,但事實並非如此。 但是,它正在顯示 req.body。

問題是什么,我該怎么做才能成功從前端發送post請求並將頁面重定向到后端?

您無法按照您嘗試的方式使用 ajax 請求進行重定向。 這是一個片段,可以完成我認為您正在嘗試做的事情。 您也可以查看 fetch api 而不是使用 XMLHttpRequest。

在服務器上:

app.post("/visitor/detect/1", (req, res) => {
  console.log(req.body);
  res.json({ redirectRoute: "/visitor/login" });
});

客戶端:

  var xhr = new XMLHttpRequest();
    xhr.open("POST", "/visitor/detect/1", true);
    xhr.setRequestHeader('Content-Type', 'application/json');
    xhr.send(JSON.stringify({
        value: "test"
    }));

    xhr.onreadystatechange = function() {
        if (xhr.readyState == XMLHttpRequest.DONE) {
            var jsonResponse = JSON.parse(xhr.responseText)
            window.location.replace(jsonResponse.redirectRoute)
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM