博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
$.ajax使用总结(一):Form提交与Payload提交
阅读量:6957 次
发布时间:2019-06-27

本文共 1094 字,大约阅读时间需要 3 分钟。

http://blog.csdn.net/yiifaa/article/details/73468001

***************************************************

后端处理前端提交的数据时,既可以使用Form解析,也可以使用JSON解析Payload字符串。

Form解析可以直接从Request对象中获取请求参数,这样对象转换与处理相对容易,但在大片JSON数据需要提交时,可能会出现大量的数据拆分与处理工作,另外针对集合类型的处理,也是其比较孱弱的地方。

而Payload的优势是一次可以提交大量JSON字符串,但无法从Request从获取参数,也会受限于JSON解析的深度(尤其是有多层对象级联的情况,最底层的对象几乎无法转换为具体类型)。

以Chrome浏览器为例,它们提交时的网络参数截图如下所示:

以下是Payload的提交方式:

具体到是实现上,$.ajax默认的实现方式就是Form提交,核心在于contentType的设置上,如下:

var data =  {    name : 'yiifaa'};//  提交数据$.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-8',    //  数据必须转换为字符串    data : JSON.stringify(data),    success : function(datas) {        console.log(datas)    }})

结论

Form提交与Payload虽然都能提交数据,但它们的应用场景差异较大,需要准确理解它们的差异才是应用得当的前提。

 

你可能感兴趣的文章
[转] 使用SVN进行源码管理
查看>>
POSIX 线程的创建与退出
查看>>
Android Fragment间对象传递
查看>>
如何去高大上的下载电影天堂的内容
查看>>
elixir 高可用系列(三) GenEvent
查看>>
一个短小的JS函数,用来得到仅仅包含不重复元素的数组
查看>>
物联网智能硬件设备身份验证机制
查看>>
PostgreSQL 的pg_buffercache安装方法
查看>>
iOS:城市级联列表的使用
查看>>
Android -- 在xml文件中定义drawable数组
查看>>
使用纯CSS实现圆角边框并完美兼容
查看>>
几种服务器端IO模型的简单介绍及实现
查看>>
onmouseover 事件
查看>>
浅谈async、await关键字 => 深谈async、await关键字
查看>>
NET快速开发实践之应用IExtenderProvider实现对象与UI控件的绑定
查看>>
Linux终端彩色打印+终端进度条【转】
查看>>
【转】从viewController讲到强制横屏,附IOS5强制横屏的有效办法
查看>>
ABP理论学习之功能管理
查看>>
使用GDB命令行调试器调试C/C++程序【转】
查看>>
Linux下smokeping网络监控环境部署记录
查看>>