当前位置: 首页 > 面试题库 >

使用jQuery将POST主体设置为JSON对象

颛孙正谊
2023-03-14
问题内容

我正在尝试在Sinatra应用程序中编写基于JSON的Web API。我想发布一个JSON对象作为发布正文(设置了正确的内容类型),但是我很挣扎。

在可可中,我会做类似的事情

[mutableHTTPRequest setHTTPBody:dataRepresentationOfJSONObject];

然后将内容类型设置为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) {

});

关于如何执行此操作的任何指示?我的目标是让我的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

问题答案:

将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



 类似资料:
  • 我正在尝试使用HttpClient创建以下帖子,使用postman它工作正常,但我似乎无法在代码中复制它。我需要将标题内容类型设置为application/json,并在文章正文中包含一个对象。 邮递https://mycompanyurl.com/authenticate 标题 键:内容类型,值:应用程序/json 正文{“username”:“someusername”,“password”:

  • 我想在纯JS或jQuery上设置一个atribute onchange值。 元素名称: 我试过了 选择在div中,id=“butterbean-control-autofilling”,所以我可以使用吗?

  • 如何在NumberPicker中更改字体类型。我试着这样做,但字体不变。有什么想法吗?P、 S:颜色和文本大小正在更改。 字体和路径工作正常。我将其用于自定义文本视图。

  • 我正在尝试通过xmlhttprequest或jqueryajax通过跨服务器发送文件,这两种方式似乎都是将文件发送到我的dev服务器,在那里我有一个php将比特流保存为docx格式。 问题是,当我将它发送到我的客户机服务器时,它们会得到0字节。奇怪的是…当我用邮递员发送文件的时候,效果很好。下面是我读取和发送文件的代码。 我还可以获取发送到服务器的数据。我客户的开发人员说的是我需要在POST BO

  • 我试图向服务器发出POST请求,但我遇到了一个问题。服务器似乎收到了请求,但我仍然在控制台中看到一个错误,建议将主体从Object更改为JSON 错误:SyntaxError:JSON中位于JSON位置0处的意外标记A。在XMLHttpRequest处解析()。装载(http://localhost:4200/vendor.js:69142:51)text:“它是用id=:23保存的新用户”pro

  • 问题内容: 我注意到在jquery中使用$ .post()时,默认contentType为application / x-www-form-urlencoded- 当我的ASP.NET MVC代码需要具有contentType = application / json时 如何使$ .post()发送contentType = application / json?我已经有大量的$ .post()函