簡體   English   中英

Ajax發布請求無法通過Express Router獲得數據

[英]Ajax post request can't get data with express router

我正在使用express.Router()管理我的路線。 然后使用Ajax發布請求向它發送一些數據。 但我無法獲取數據。

Ajax代碼:

        $.ajax({
            url: '/custom',
            type: 'POST',
            contentType: 'application/json; charset-utf-8',
            dataType: 'json',
            processData: false,
            data: JSON.stringify({ "key": "values" }),
            success: function(data) {
                console.log(data.toString());
            }
        })

快遞代碼:

var express = require('express');
var router = express.Router();    
router.post('/custom',  function(req, res) {
        console.log(req.body);
        console.log(req.params);
        console.log(req.query);

        res.write(JSON.stringify());
        res.end();
});

但是所有日志都是空的。

問題是因為ajax中的content-type標頭格式錯誤。 代替contentType: 'application/json; charset-utf-8' contentType: 'application/json; charset-utf-8'應該為contentType: 'application/json; charset=utf-8' contentType: 'application/json; charset=utf-8'

假設您使用的是bodyParser.json()中間件,這將導致正文無法解析,從而打印出一個空的正文。 當您使用Postman發送請求時,會發送正確的標頭,這就是為什么它在那起作用的原因,而不是來自ajax請求的原因。

暫無
暫無

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

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