我正在尝试在Sinatra应用程序中编写一个基于JSON的web API。我想发布一个JSON对象作为POST主体(使用正确的内容类型设置),但我正在努力。
在Cocoa中,我会这样做
[mutableHTTPRequest setHTTPBody:dataRepresentationOfJSONObject];
内容类型设置为JSON,然后将HTTP主体作为JSON对象发布。我正在尝试用jquery来做这件事。到目前为止,我能做的最好的事情就是把JSON对象转换成一个普通风格的key=value&…
风格的post主体,而这并不是我想要的。
我的Javascript:
var data = { "user" : "me!" };
$.ajax({
type: "POST",
url: "/api/user/create",
contentType: 'application/json',
data: data,
success: function(r) {
});
对如何做到这一点有什么建议吗?我的目标是让我的Sinatra像下面这样
post "/api/user/create" do
js = JSON.parse(request.body.read)
# do something with the js object… this works when POSTing from Cocoa
end
发布于 2012-06-02 05:15:18
将processData参数添加到ajax请求中,并将其设置为false。此外,您需要将对象串化以将其转换为JSON。
var data = { "user" : "me!" };
$.ajax({
type: "POST",
url: "/api/user/create",
processData: false,
contentType: 'application/json',
data: JSON.stringify(data),
success: function(r) {
}
});
除非您实现JSON.stringify
,否则它将无法在旧版本的IE中工作。http://json.org
https://stackoverflow.com/questions/10857382
复制相似问题