小编典典

jQuery AJAX和json格式

ajax

我有一个期望接收json的Web服务,如下所示:

{"first_name":"test","last_name":"teste","email":"moi@someplace.com","mobile":"+44 22 2222 2222", "password":"testing"}

我在jquery中的ajax调用:

$.ajax({
        type: "POST",
        url: hb_base_url + "consumer",
        contentType: "application/json",
        dataType: "json",
        data: {
            first_name: $("#namec").val(),
            last_name: $("#surnamec").val(),
            email: $("#emailc").val(),
            mobile: $("#numberc").val(),
            password: $("#passwordc").val()
        },
        success: function(response) {
            console.log(response);
        },
        error: function(response) {
            console.log(response);
        }
    });

有什么方法可以检查数据的发送格式?据说我没有将正确的JSON发送到服务器(这是验证的第一步)。

我的jquery代码是否发送有效的JSON或我错过了什么?


阅读 290

收藏
2020-07-26

共1个答案

小编典典

您实际上并不是在发送JSON。您正在将对象传递为data,但是您需要对对象进行字符串化,然后传递字符串。

dataType: "json"只告诉jQuery您希望它解析返回的JSON,但这并不意味着jQuery将自动对您的请求数据进行字符串化处理。

改成:

$.ajax({
        type: "POST",
        url: hb_base_url + "consumer",
        contentType: "application/json",
        dataType: "json",
        data: JSON.stringify({
            first_name: $("#namec").val(),
            last_name: $("#surnamec").val(),
            email: $("#emailc").val(),
            mobile: $("#numberc").val(),
            password: $("#passwordc").val()
        }),
        success: function(response) {
            console.log(response);
        },
        error: function(response) {
            console.log(response);
        }
});
2020-07-26