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

jQuery在请求正文中发布有效的json

孙才捷
2023-03-14
问题内容

因此,根据jQuery
Ajax文档
,它在发送请求时以查询字符串的形式序列化数据,但是设置processData:false应允许我在正文中发送实际的JSON。不幸的是,我很难首先确定是否发生这种情况,其次是将对象的外观发送给服务器。我所知道的是服务器未解析我正在发送的内容。

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

当在Java端记录主体内容时,它实际上得到了,[object Object]因此如何发送REAL JSON数据?

有没有人有过使用Java服务从jQuery发送请求来序列化请求正文中的JSON数据的经验?

顺便说一句,这里是完整的$ .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'
});

问题答案:

实际的JSON请求如下所示:

data: '{"command":"on"}',

发送实际JSON字符串的位置。对于更通用的解决方案,可使用JSON.stringify()将对象序列化为JSON,如下所示:

data: JSON.stringify({ "command": "on" }),

为了支持没有该JSON对象的旧版浏览器,请使用json2.js将其添加到其中。

目前正在发生的事情是因为您拥有processData: false,基本上是在发送此消息({"command":"on"}).toString()[object Object]您在请求中看到的内容。



 类似资料:
  • 我正在尝试在Spring Boot中使用WebClient制作API POST Request。但是我无法使用JSON正文发出我想要的请求并以JSONObject的形式接收响应。 JSON正文: 服务类别- 工作区模型- 主通话- 我需要发送一个JSON主体列表,作为主体post请求。请帮我做帖子请求提前谢谢

  • 问题内容: 在views.py中: 我想通过jQuery将此数据(名称和年龄)发送到“ SomeView”中的此发布函数。这是与加载的模板相同的视图,只是请求类型不同。在get()上加载模板,并在post上调用post()函数。可能吗?我检查了其他问题并获得了此解决方案。它应该正在工作。我究竟做错了什么? 问题答案: 如果传入的POST请求未能通过Csrf检查,则Django返回403响应(禁止)

  • 我正在尝试数据发送到远程AWS API。 数据应该是部分上的。 使用邮递员,我可以发送数据,一切都正常工作: 现在,为了使用,我正在执行以下操作: 请求成功,但没有数据更新!好像没有收到一样。 我无法访问远程API日志文件。 所以我的问题是,这是在Guzzle请求的主体部分发布数据的正确方法吗? 谢了。

  • 问题内容: 我需要进行API调用,以上传文件以及带有有关文件详细信息的JSON字符串。 我正在尝试使用python请求库来执行此操作: 这将引发以下错误: 如果我从请求中删除“文件”,则它可以工作。 如果我从请求中删除了“数据”,它将起作用。 如果我不将数据编码为JSON,则可以使用。 因此,我认为错误与在同一请求中发送JSON数据和文件有关。 关于如何使它工作的任何想法? 问题答案: 不要使用j

  • 问题内容: 我有一个带有&值的输入元素: 当我尝试通过ajax请求发送它时: 实际发送的帖子数据为: *请注意,数据中的所有变量均已定义,并且值包含$(thatInputElement).attr(’value’)。 我怎样才能正确地逃脱,以便张贴字段将包含? 问题答案: 您可以将选项设置为对象,然后让jQuery进行编码,如下所示: 您 可以 使用 来 编码每个值,如下所示: 但是在大多数情况下

  • 问题内容: 我正在学习AngularJS,并尝试构建从Wordpress获取数据的前端系统。 在后端,一切似乎都已正确设置,当我使用jQuery ajax请求时,它可以毫无问题地获取数据。 但是,当我尝试使用AngularJS做同样的事情时,它不起作用。我正在尝试使用以下代码复制ajax请求: 如果我将其记录下来,它将输出0。我缺少什么? 谢谢你的帮助。 PS控制器如下所示: 问题答案: 在ang