javascript - JSON 未正确发布

标签 javascript jquery json api post

所以我试图添加一个内部包含一堆属性的对象。

这是我试图 $.post 的对象

({"fname" : fname,
          "lname" : lname,
          "gender" : gender,
          "traits" : {
          "iq" : intellect,
          "height" : height,
          "speed" : speed,
          "weight" : weight,
          "stamina" : stamina,
          "toughness" : toughness
          },
          "homeState" : homeState,
          "country" : country
         });

在发布对象之前,一切正常。我可以执行 obj.traits.iq ,它将返回所需的确切 iq 等。查看检查器,“traits”作为一个对象出现。

一旦我用这个函数发布它,问题就开始了

$.post( url, obj, function(data){
console.log(data);})
}

该对象已发布,我可以访问它,但它的格式很奇怪。 而不是显示为 "traits": Object; 的特征 它显示为 traits[iq]: 100、traits[height]: 5'6 等。它不会显示为可访问的对象,而是自动显示该格式的所有特征。我究竟做错了什么?我什至不知道该查找什么,也不知道为什么会发生这种情况。

这导致的问题是 API 中还有其他对象可以正确返回,它们的“traits”显示为 "traits":object,而不是 traits[iq] : 100 Traits[height]: 5'6 等。这会导致我围绕 API 编写的所有功能无法在我添加的任何新对象上运行。

API 信息:

示例请求

POST /apikey/players HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: --------

{
    "fname": "Steve",
    "lname": "Harley",
    ...
}

示例响应:帖子应该返回具有新 id 属性的对象

HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
Date: Fri, 10 SEPT 2014 12:24:28 GMT

{
    "id": 11,
    "fname": "Steve",
    "lname": "Harley",
        ...
}

最佳答案

看起来 api 需要 json,这不是您发送的内容。
要发送 json,您必须将数据编码为 json 和 se

$.post( {
    url: url, 
    data: JSON.stringify(obj), 
    contentType: 'application/json',
    success: function(data){
        console.log(data);
    }
});

关于javascript - JSON 未正确发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37095774/

相关文章:

javascript - 将数组的数组转换为对象?

jquery - 对带有 URL 的数据属性进行 EncodeFor

javascript - backbone.js 复杂模型

javascript - 为什么我无法对 json 数据调用 .get/如何将 json 转换为 map

c# - 通过 Ajax 和 JSON 调用 WCF REST 服务

javascript - 如何在 JavaScript 计时器过期后重定向?

javascript - Onclick 在 JavaScript Canvas 中创建的图像

javascript - 如何应用 PIXI.js v5 BulgePinchFilter

jquery .find 适用于除 IE 之外的所有浏览器

jquery - Backbone .js和node.js与jQuery完全不同吗?