![](/img/trans.png)
[英]Can't send POST request from React front-end to Node.js back-end
[英]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.