ajax Form提交与Payload提交
后端处理前端提交的数据时,既可以使用Form解析,也可以使用JSON解析Payload字符串。
Form解析可以直接从Request对象中获取请求参数,这样对象转换与处理相对容易,但在大片JSON数据需要提交时,可能会出现大量的数据拆分与处理工作,另外针对集合类型的处理,也是其比较孱弱的地方。
而Payload的优势是一次可以提交大量JSON字符串,但无法从Request从获取参数,也会受限于JSON解析的深度(尤其是有多层对象级联的情况,最底层的对象几乎无法转换为具体类型)。
以Chrome浏览器为例,它们提交时的网络参数截图如下所示:
form 提交方式:

以下是Payload的提交方式:

具体到是实现上,$.ajax默认的实现方式就是Form提交,核心在于contentType的设置上,如下:
var data = {
name : 'abc'
};
// 提交数据
$.ajax('app/', {
method:'POST',
// 将数据编码为表单模式
contentType:'application/x-www-form-urlencoded; charset=UTF-8',
// 数据必须为JS对象,不可是字符串
data : data,
success : function(datas) {
console.log(datas)
}
})
而Payload提交方式的实现如下:
$.ajax('app/', {
// 据我测试了多次,payload只能用于POST方式
method:'POST',
// 数据类型必须为application/x-www-form-urlencoded之外的类型
contentType:'application/json;charset=utf-8', charset=UTF-',
// 数据必须转换为字符串
data : JSON.stringify(data),
success : function(datas) {
console.log(datas)
}
})
ajax Form提交与Payload提交的更多相关文章
- $.ajax使用总结(一):Form提交与Payload提交
http://blog.csdn.net/yiifaa/article/details/73468001 *********************************************** ...
- 【TP3.2 + 其他任何PHP框架】编辑、删除、添加数据,返回原分页 (ajax+form两种方式提交均可以)
1.目的1:在如下的一个页面中,p=2,比如我们删除数据id=13,通过ajax提交{id,p} 这2个参数,就可以了,页面返回json的url参数中原样带上p即可. 2.目的2: 步骤1:在如下页面 ...
- input file 在开发中遇到的问题 类似ajax form表单提交 input file中的文件
最近在做项目的过程中遇到个问题,在这里做个记录防止日后忘记 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为 ...
- ajax form表单提交 input file中的文件
ajax form表单提交 input file中的文件 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为了 ...
- 使用ajax方法实现form表单的提交(附源码)
写在前面的话 在使用form表单的时候,一旦点击提交触发submit事件,一般会使得页面跳转,页面间的跳转等行为的控制权往往在后端,后端会控制页面的跳转及数据传递,但是在某些时候不希望页面跳转,或者说 ...
- 利用 ajax自定义Form表单的提交方式
需求场景:有时候单纯的form表单无法向后端传递额外的参数 比如需要action传递js异步生成的参数 ,form表单默认的action就无法满足需求,这时就需要我们自定义form表单的提交方式. h ...
- 使用ajax方法实现form表单的提交
作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 写在前面的话 在使用form表单的时候,一旦点击提交触发submit ...
- DWZ框架Ajax无刷新表单提交处理流程
DWZ框架Ajax无刷新表单提交处理流程是: 1. ajax表单提交给服务器 2. 服务器返回一个固定格式json结构 3. js会调函数根据这个json数据做相应 ...
- 表单提交是ajax提交,PC提交没问题但是手机提交就会一直跳到error,并且也没状态码一直是0
真是被自己蠢死了button标签他会自动提交刷新页面 <form id="baoming_from"> <p>请填写您的个人信息</p> < ...
随机推荐
- PHP 让__get方法重新执行
<?php class A { public function __get($p) { echo "getting $p\r\n"; if(isset($this->$ ...
- js常用函数和常用技巧
学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...
- 待签名参数按照字段名的ascii码从小到大排序
public static String getSign(Map<String, String> params) { Map<String, String> sortMap = ...
- ES查询tags字段为空或null
现需要查询出tags为 "" 或者为 null 的数据 { "query": { "bool": { "must": { ...
- JavaScript Best Practices
原文: https://www.w3schools.com/js/js_best_practices.asp --------------------------------------------- ...
- Nginx常用Rewrite(伪静态规则)WordPress/PHPCMS/ECSHOP/ShopEX/SaBlog/Discuz/DiscuzX/PHPWind/Typecho/DEDECMS
目前已收集Wordpress.Wordpress二级目录.PHPCMS.ECSHOP.ShopEX.SaBlog.Discuz.Discuz X.PHPWind.Typecho.DEDECMS: Wo ...
- zoj 3888 Twelves Monkeys 二分+线段树维护次小值
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemCode=3888 Twelves Monkeys Time Limit: 5 ...
- 11. 配置ContextPath【从零开始学Spring Boot】
转载:http://blog.csdn.net/linxingliang/article/details/51637036 spring boot默认是/ ,这样直接通过http://ip:port/ ...
- CocoaPods安装及相关命令
具体安装参考: http://www.jianshu.com/p/dfe970588f95 http://www.jianshu.com/p/9e4e36ba8574 我就说一个,安装cocoapod ...
- golang一些知识点
2.冒泡排序(二维数组使用): func main() { i := 1 MYLABEL: for { i++ if i > 3 { break MYLABEL } } fmt.Println( ...