相关疑难解决方法(0)

jQuery在请求体中发布有效的json

因此,根据jQuery Ajax文档,它在发送请求时以查询字符串的形式序列化数据,但设置processData:false应该允许我在正文中发送实际的JSON.不幸的是,我很难确定第一个,如果发生这种情况,那么第二个对象看起来是什么,它被发送到服务器.我所知道的是服务器没有解析我发送的内容.

使用http客户端发布对象文字时{someKey:'someData'},它可以工作.但是当使用jQuery时data: {someKey:'someData'},它会失败.不幸的是,当我在Safari中分析请求时,它说消息有效负载是[object Object]......很棒......而且在Firefox中帖子是空白的...

在Java端记录正文内容时,它实际上[object Object]是如何发送REAL JSON数据的?

有没有人有过在请求体中序列化JSON数据的Java服务的经验,请求是从jQuery发送的?

BTW这里是完整的$ .ajax请求:

$.ajax({
    contentType: 'application/json',
    data: {
        "command": "on"
    },
    dataType: 'json',
    success: function(data){
        app.log("device control succeeded");
    },
    error: function(){
        app.log("Device control failed");
    },
    processData: false,
    type: 'POST',
    url: '/devices/{device_id}/control'
});
Run Code Online (Sandbox Code Playgroud)

ajax jquery json xmlhttprequest

162
推荐指数
1
解决办法
21万
查看次数

使用jQuery将POST主体设置为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)

javascript jquery json

20
推荐指数
1
解决办法
4万
查看次数

标签 统计

jquery ×2

json ×2

ajax ×1

javascript ×1

xmlhttprequest ×1