【问题标题】:JSON isn't posting correctlyJSON 未正确发布
【发布时间】:2016-09-02 21:47:35
【问题描述】:

所以我正在尝试添加一个对象,其中包含一堆属性。

这是我试图 $.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,等等。看着检查器,“特征”作为一个对象出现。

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

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

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

这导致的问题是 API 中有其他正确返回的对象,它们的“特征”显示为 "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,你认为错误就在他们的尽头吗?
  • 这个api有文档吗?
  • 这是正确的序列化,如果您希望 PHP 后端解析它(开箱即用)。首先,我真的不明白你的意思是你发送到后端的数据还是你从后端得到的数据搞砸了。那么,后端期望什么输入?

标签: javascript jquery json api post


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    根据我们在请求中指定的格式,某些 API 可以以不同格式向我们发送响应(例如,这种类型的 API 可以通过 ASP.NET 轻松完成)。您是否尝试过像这样将 dataType 参数显式指定为 json

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 2011-07-21
      • 2012-06-26
      相关资源
      最近更新 更多