繁体   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