jquery.form.js修改源码ajax支持json格式参数
来源:互联网 发布:云计算 paas 编辑:程序博客网 时间:2024/06/06 08:54
背景
随着RESTFUL格式API的盛行,表单提交jqery的ajax是可以自定义提交的数据格式
但是如果使用jquery.form.js则它默认的格式都是使用的param()方式转成了&的字符串,因此对于严格格式要求application/json的参数则无法支持自定义格式,因此动手修改源码如下;
1.实现param2json方法,默认jquery只有param方法
/** * 将param对象转为josn格式 * @param a obj对象 * @param traditional 规定是否使用传统的方式浅层进行序列化(参数序列化)。 * @method param2Json * */$.param2Json = function(a, traditional) { var prefix, s = {}, add = function(key, value) { //如果value是函数,那么调用函数得到返回值作为真正的value值,如果value是null或者undefined //那么直接value是空字符串,其它情况value不变! // If value is a function, invoke it and return its value value = jQuery.isFunction(value) ? value() : (value == null ? "" : value); //把key和value值都进行了转码调用encodeURIComponent s[key] = value; }; // Set traditional to true for jQuery <= 1.3.2 behavior. if (traditional === undefined) { traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; } // If an array was passed in, assume that it is an array of form elements. if (jQuery.isArray(a) || (a.jquery && !jQuery.isPlainObject(a))) { // Serialize the form elements [{name:"avaue"},{age:1}] jQuery.each(a, function() { //这里面的each指向前面的数组中的内容,也就是是一个对象! add(this.name, this.value); }); } else { s=a; } // Return the resulting serialization //最后把数组s中的所有的查询字符串通过&链接起来,并且把%20也就是空格用+表示! return s;};
为了方便使用,可以把该代码放入common.js中引入页面使用,或者直接放在jquery.form.js源码的倒数第一个}));的上一行作为它的扩展函数使用
2.修改源码
var q;//定义q参数这行开始 //当为json时添加我们自己的转换方式 //when contentType is application/json type the param will be json string if (options.contentType&&options.contentType.indexOf('json')>0) { q = JSON.stringify($.param2Json(a, traditional)); }else{ // change param to a=v&b=v string :param(d,t) is jquery.js methond q = $.param(a, traditional);//原有参数转换方式 } //
3.使用方式
var form = $("form[name=dataForm]"); form.ajaxSubmit({ url:sysMessageTep.basePath, contentType: "application/json; charset=utf-8", //加上 contentType dataType: "json", type:"put", success:function(res){ } });
0 0
- jquery.form.js修改源码ajax支持json格式参数
- jQuery.form.js是一个form插件,支持ajax表单提交和ajax文件上传。
- js 参数加密 修改jquery源码
- js\jquery\ajax\json
- jquery form表单序列化成json格式
- js jquery json ajax区别
- jquery.form.js ajax上传文件问题
- jsp中利用jquery+ajax传递json格式参数与前后台之间
- jsp中利用jquery+ajax传递json格式参数与前后台之间
- Ajax中传递Json格式的参数
- json格式的 jquery ajax 实例
- Jquery.form.js常用参数整理
- 利用jquery.form.js将form提交转为ajax提交
- 企业开发中js,Jquery,Ajax和json格式的一个例子
- AJAX 原生js以及Jquery解析html,xml,txt,json格式文本
- JQuery Form表单转JSON(支持复杂数据版)
- JQuery插件:jQuery.Form.js,AJAX表单提交
- jquery ajax form serialize() 转json 数据,post 后台
- 构建dubbo服务消费者web应用的war包
- postgresql 9.4 在linux(Centos)环境的安装步骤详解
- nginx 代码分析listen 和request请求的流程
- js 绑定时间后,浏览器会根据函数的参数传递一个事件
- 读TCP/IP详解卷一和计算机网络笔记
- jquery.form.js修改源码ajax支持json格式参数
- 个人记录-LeetCode 108. Convert Sorted Array to Binary Search Tree
- sourceInsight4 破解笔记(完美破解)
- 高并发Java 三 Java内存模型和线程安全
- python -pass的用法
- apache thrift介绍与实例
- myBatis
- 蓝桥杯 凑平方数
- mysql批量插入数据量过大报错解决办法