博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将jquery序列化转成对象的编码坑
阅读量:4694 次
发布时间:2019-06-09

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

主要的两个坑:

  1.  jquery的 serialize()时会将空格转义成+,字符转成对象时把+号转成空格

    例如:

    那么在执行 serialize()方法后,得到的却是  12+34%2B56  这样的字符串;

    即jquery的序列化方法对空格进行了转义,转换成了 + 号,“+”号转义的是 %2B

  2. 一直以为序列化字符串中key编码没啥用,key一定要编码,若key不编码如下情况会出现问题

    

 

最终将jquery序列化字符串转成对象的方法如下

1 serializeObj: function(paramStrs){ 2             if(!paramStrs){ 3                 return {}; 4             } 5  6        // jquery序列化传入的字符串,将+号转成空格 7             paramStrs = paramStrs.replace(/\+/gi, ' '); 8  9             var arr = paramStrs.split('&'), 10 returnObj = {}, 11 name = '', 12 value = '', 13 temp = null; 14 for(var i=0; i< arr.length; i++){ 15 temp = arr[i].split('='); 16 name = decodeURIComponent(temp[0]); 17 value = decodeURIComponent(temp[1]); 18 19 if(!returnObj.hasOwnProperty(name)){ 20 returnObj[name] = value; 21 }else{ 22 if($.isArray(returnObj[name])){ 23  returnObj[name].push(value); 24 }else{ 25 var tempArr = [returnObj[name]]; 26  tempArr.push(value); 27 returnObj[name] = tempArr; 28  } 29  } 30  } 31 32 return returnObj; 33 }

 

转载于:https://www.cnblogs.com/sanbao/p/5338271.html

你可能感兴趣的文章
maven3在eclipse3.4.2中创建java web项目
查看>>
发布时间 sql语句
查看>>
黑马程序员 ExecuteReader执行查询
查看>>
记一些从数学和程序设计中体会到的思想
查看>>
题目1462:两船载物问题
查看>>
POJ 2378 Tree Cutting(树形DP,水)
查看>>
第二冲刺阶段个人博客5
查看>>
UVA 116 Unidirectional TSP (白书dp)
查看>>
第三方测速工具
查看>>
MySQL 网络访问连接
查看>>
在aws ec2上使用root用户登录
查看>>
数据访问 投票习题
查看>>
CIO知识储备
查看>>
cnblog!i'm coming!
查看>>
使用点符号代替溢出的文本
查看>>
Axios 中文说明
查看>>
fatal: remote origin already exists.
查看>>
gridview 自定义value值
查看>>
2018二月实现计划成果及其三月规划
查看>>
类名.class和getClass()区别
查看>>