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

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

My AJAX call in jQuery:

$.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(这是验证的第一步).

Is my jQuery code sending valid JSON or did I miss something?

推荐答案

您实际上并没有发送JSON.您正在传递一个作为data的对象,但是您需要将该对象串化并传递字符串.

Your dataType: "json" only tells jQuery that you want it to parse the returned JSON, it does not mean that jQuery will automatically stringify your request data.

更改为:

$.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);
        }
});

Json相关问答推荐

嵌套自定义解组

JOLT拉平数组

当console.log返回TRUE值时,解析的JSON中的字段未定义

如何在Haskell中解析JSON,其中字段的名称可以是多个值之一,但应该转换为单个Haskell类型?

将JSON数组组织到菜单中

当由.sh脚本执行时,AWS查询字符串不会提取任何数据

条件性构建/修改嵌套对象数组

基于JQ中另一个对象的值 Select 对象

从 Inno Setup 中的 JSON 文件的每个对象中读取特定字符串

使用本地 JSON api react TS Axios

从字节解码 JSON 数据,将 float 值更改为 int

在 postgresql 中将行转换为 json 对象

在 Perl Mojolicious 中呈现 JSON 时防止转义字符

使用 Javascript 判断 JSON 对象是否包含值

在 Http Header 中使用 Json 字符串

嵌套 JSON:如何向对象添加(推送)新项目?

Jackson:忽略 Json 配置值

JSON.stringify 向我的 Json 对象添加额外的 \ 和 "" 的问题

jq:按属性分组和键

我如何反序列化以杰克逊为单位的时间戳?