簡體   English   中英

在 Node Express 中提取 HTTP Post 不起作用

[英]Extracting of HTTP Post in Node Express doesn't work

我只想提取一個 http-Post 但我沒有讓它工作。 有人可以幫我嗎? 該請求是由我的 HTML 前端使用 XMLHttpRequest() 發出的,后端是 node.js。 當我發送請求時,我只得到一個空的 Object {}

節點后端

var express = require('express');
const bodyParser = require('body-parser');
var app = express();

app.use(express.json());

app.post('/save_options', (req, res) => {
    console.log(req.body);
    res.sendStatus(200);
});

前端

let DATA_FRONTEND_OPTIONS = {
  "test":"1"
}

function save_options_to_database() {
  var do_it_async = true;

  var request = new XMLHttpRequest();

  request.onload = function () {
    var status = request.status;
    var data = request.responseText;
  }

  request.open("POST", "/save_options", do_it_async);

  request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
  //request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");

  request.send(JSON.stringify(DATA_FRONTEND_OPTIONS));
}

只需添加app.use(express.urlencoded()); 到您的快速配置。

這是很好的解釋: https://stackoverflow.com/a/51844327/8522881

您必須為 POST 請求添加express.json()express.urlencoded()

例子:

app.use(express.json());
app.use(express.urlencoded());

因為在 POST 請求中,發送的數據是以某種類型的數據 object 的形式出現的,您必須告訴服務器接受或存儲該類型的數據(對象),它包含在您的 POST 請求的正文中。

以上同樣的解決方案也適用於 PUT 請求。

暫無
暫無

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

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