jbr*_*nan 20 javascript jquery json
我正在尝试在Sinatra应用程序中编写基于JSON的Web API.我想POST一个JSON对象作为帖子正文(具有正确的内容类型集),但我正在努力.
在Cocoa中,我会做类似的事情
[mutableHTTPRequest setHTTPBody:dataRepresentationOfJSONObject];
Run Code Online (Sandbox Code Playgroud)
然后,设置为JSON的内容类型将HTTP主体作为JSON对象发布.我试图用jquery做这个.到目前为止,我能做的最好只是将JSON对象转换为正常的样式key=value&…
样式的帖子,这不是我想要的.
我的Javascript:
var data = { "user" : "me!" };
$.ajax({
type: "POST",
url: "/api/user/create",
contentType: 'application/json',
data: data,
success: function(r) {
});
Run Code Online (Sandbox Code Playgroud)
有关如何做到这一点的任何指示?我的目标是让我的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
Run Code Online (Sandbox Code Playgroud)
use*_*654 53
将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) {
}
});
Run Code Online (Sandbox Code Playgroud)
JSON.stringify
除非您实现它,否则将无法在旧版本的IE中使用.http://json.org