通过ajax请求收到的数据格式?

时间:2016-03-30 23:19:38

标签: javascript jquery ajax node.js

我的客户端代码如下所示:

<form name="sendCoordinates" action="http://localhost:8080/geodata" method="post"> 
        <label> MinLat: </label>
        <input type="text" name="MinLat" value="0"><br>
        <label> MaxLat: </label>
        <input type="text" name="MaxLat" value="1"><br>
        <label> MinLong: </label>
        <input type="text" name="MinLong" value="0"><br>
        <label> MaxLong: </label>
        <input type="text" name="MaxLong" value="1"><br>

        <input type="submit" value="submit" id="s1">
        </form> 

<script>


        $("#sendCoordinates")
            .on('submit', function(e) {

                e.preventDefault();

                var $form    = $(e.target),
                    formData = new FormData();
                    params   = $form.serializeArray();

                $.each(params, function(i, val) {
                    formData.append(val.name, val.value);
                });

                $.ajax({
                    url: $form.attr('action'),
                    data: formData,
                    cache: false,
                    contentType: false,
                    processData: false,
                    type: 'POST',
                    success: function(result) {
                        console.log(result + "you");
                    }
                });
            });
    </script>

我将此表单数据发送到端点/geodata

app.post("/geodata", function(req, res) {
    console.log(req.body);
});

我的问题是,在一篇成功的帖子中,console.log(req.body)在服务器端打印的是什么?由于某些错误,我的客户端尚未发送任何信息,因此无法判断。这将帮助我根据我在post请求中收到的数据编写服务器端代码。

1 个答案:

答案 0 :(得分:0)

您似乎正在使用Express。在一般实践中,请求主体被解析为JSON(请参阅Express req.body docs),但这取决于您正在使用的解析中间件(body-parser是Express应用程序中常见的)。

它还取决于请求的Content-Type标头。从我上面提到的Express文档中,他们举了一个例子:

app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded

看起来您当前在AJAX请求中设置了contentType: false,因此只会将原始数据发送到您的服务器。

更具体地回答你的问题

  

我的问题是,在一篇成功的帖子下,console.log(req.body)会在服务器端打印出什么内容?

这取决于Content-Type以及使用解析请求正文的中间件(如果有)。