因此,我试图添加一个带有一堆属性的对象。
这是我试图$ .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需要json,而不是您要发送的json。
要发送json,您必须将数据编码为json和se
$.post( {
url: url,
data: JSON.stringify(obj),
contentType: 'application/json',
success: function(data){
console.log(data);
}
});