Ajax向后台传数据,利用JSON格式(Request payload)和默认格式(formData)的区别

这是写的时候遇到的坑,看了各种资料,虽然云里雾里的,但是能用。具体的原理还待后面的研究。写在这防止自己忘记。

在前台向后台利用Ajax传数据的时候。有formData(ajax默认的)和Request payload还有其他的类型。具体的差别可以去查。大概意思就是一般表单用的就是formData。JSON格式数据是request payload。

 二者区别在于:对于后台来说FormData中是键值对。在后台可以利用request.getParameter("data")来获取到后面的那些值,因为在Request中会自动转化Form Data为key:value。而Request payload却不可以,因为是JSON格式,Reuqest中不存在该键值对。

2:在Ajax中向后台传数据的时候:可以自行的选择利用那种方式:如下:

有json数组employees。我们需要将这个值传到后台。

1:利用一般方式formData:该方式需要将上面的contentType: 'application/json'注释掉,不注释掉的意思就是利用JSON(request payload)格式传输。然后data部分的值为data:{'data':JSON.stringify(employees)}。其中有引号的‘data’是自定义的键,也就是后台request.getParaml(”data")中的data,JSON.stringify(employees)就是值,是要传的数据,意思是将数组序列化为字符串。

在后台利用获取该值:

2:利用Request payload:这种方法意思就是我直接传一个JSON对象给后台。后台不会把JSON对象自动转化为键值对存放在Request中等你来取,需要自己转。

这种方式data部分需要改变,只利用JSON字符串即可,但是后面需要加上contentType.告诉http传输的是JSON对象。

后台获取数据: 

后台获取JSON一定要加@RequestBody,后面的类型为自定义的,如果前台传来的是你的某一个bean,如User,那么后面为User user也可以。(上面图中注释:将JSON转化为JSON有误,为将JSON字符串转化为JSON)。

重要:如果Ajax中是data:{key:value},一定不能加contextType:application/json。如果是data:JSON字符串,一定要加。并且在后台中,request和@RequestBody不能同时存在,因为前者是formData传输,后面是request payload传输。二者不能一起吧,这里不清楚,反正二者一起这里一直没有获取到值。为此才写了这个来记住一下。第一次写,加上学艺不精,有错还望各位指出改正,大家一起学习嘛。

  • 12
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 谷歌F12的payload中的json格式很乱可能是由于多种原因引起的。首先,如果在生成json数据时使用了不正确的编码方式或格式化选项,则可能会导致数据格式混乱。此外,数据可能在输过程中被修改或损坏,也可能导致json格式的混乱。最好的解决方案是检查生成数据的代码和数据输的完整性,以确保json数据的正确性。 ### 回答2: 谷歌F12payloadJSON格式看起来可能很乱的原因可能有几个。 首先,JSON是一种用于数据交换的轻量级数据格式,它由键值对组成。JSON结构可以相对灵活,所以在创建JSON对象时,开发者可以自由定义键和值的结构。因此,如果JSON对象中有大量的嵌套结构,或者包含了许多键值对,它可能会看起来比较复杂和混乱。 其次,当数据量较大时,JSON对象可能会变得非常庞大,键值对可能会呈现出非常冗长的结构。这种情况下,JSON对象可能会显得难以阅读和理解。 另外,谷歌的F12开发者工具是用于在浏览器中调试和分析网页的工具。当在F12工具的网络选项卡中查看请求和响应时,JSON格式payload可能会以原始数据的形式呈现,而不是经过美化和格式化的形式。这可能导致JSON看起来更加混乱和难以理解。 总的来说,谷歌F12payloadJSON格式可能看起来很乱的原因可能是因为JSON对象的结构复杂、数据量大或在F12工具中以原始形式显示。为了更好地理解和解读JSON数据,我们可以使用在线的JSON格式化工具或者借助代码编辑器的插件来美化和格式JSON对象,使其更易于阅读和理解。 ### 回答3: 谷歌F12的Payload是Chrome浏览器开发工具中的一部分,用于捕获和查看网页请求和响应数据。在F12的网络面板中,我们可以通过查看PayloadJSON格式数据来了解网页与服务器之间的数据交互。 有时候,F12中的PayloadJSON格式可能看起来很乱。这可能是因为以下几个原因: 1. 缩进格式JSON数据通常是按照层级关系进行缩进的,以便更好地查看和理解数据结构。但是,在F12中,JSON格式的缩进可能不够清晰或一致,导致数据呈现混乱。 2. 大小写混合:有些JSON数据在F12中的Payload中的键名或值的大小写可能是混合的,这给阅读和解析JSON数据带来了困难。这可能是由于服务器返回的数据格式或处理程序中的编码问题导致的。 3. 特殊字符和转义字符:在JSON数据中可能包含特殊字符或需要使用转义字符来表示的字符。F12中的Payload在显示这些字符时可能没有进行适当的处理,从而导致数据呈现混乱。 尽管F12的PayloadJSON格式可能看起来比较乱,但我们仍然可以通过一些技巧来解析它。例如,我们可以使用在线的JSON解析工具来格式化和解析混乱的JSON数据。此外,我们也可以通过手动缩进、分行和对齐来提高可读性。 总而言之,谷歌F12的PayloadJSON格式可能会看起来比较乱,但我们可以通过一些方法来解析和理解其中的数据
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值