首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用jQuery将POST-body设置为JSON对象

使用jQuery将POST-body设置为JSON对象
EN

Stack Overflow用户
提问于 2012-06-02 05:10:07
回答 1查看 43.6K关注 0票数 20

我正在尝试在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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

票数 53
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10857382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档