使用Post提交时须将空格转换成加号的解释


Posted in Javascript onJanuary 14, 2013

jQuery的serialize模块中有个r20正则

var r20 = /%20/g,

jQuery.param方法中会将所有的"%20"转成"+",即提交数据前,数据中如果包含空格,那经过encodeURIComponent后,空格会转成"%20"
encodeURIComponent(' ') === '%20'; // true

最后需要将"%20"转换成"="再Post提交。这样后台程序接受到的才是真正的空格。

关于 encodeURIComponent,见MDC描述

encodeURIComponent escapes all characters except the following: alphabetic, decimal digits, - _ . ! ~ * ' ( )

To avoid unexpected requests to the server, you should call encodeURIComponent on any user-entered parameters that will be passed as part of a URI. For example, a user could type "Thyme &time=again" for a variable comment. Not using encodeURIComponent on this variable will give comment=Thyme%20&time=again. Note that the ampersand and the equal sign mark a new key and value pair. So instead of having a POST comment key equal to "Thyme &time=again", you have two POST keys, one equal to "Thyme " and another (time) equal to again.

For application/x-www-form-urlencoded (POST), per http://www.w3.org/TR/html401/interac...m-content-type, spaces are to be replaced by '+', so one may wish to follow a encodeURIComponent replacement with an additional replacement of "%20" with "+".

相关
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent
http://www.w3.org/TR/html401/interact/forms.html#form-content-type

Javascript 相关文章推荐
jQuery中的常用事件总结
Dec 27 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
Jul 29 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
Sep 02 Javascript
JS本地刷新返回上一页代码
Jul 25 Javascript
js CSS3实现卡牌旋转切换效果
Jul 04 Javascript
js 监控iframe URL的变化实例代码
Jul 12 Javascript
实例教学如何写vue插件
Nov 30 Javascript
JS实现带阴历的日历功能详解
Jan 24 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
Jul 19 Javascript
JS代码触发事件代码实例
Jan 02 Javascript
Node使用Nodemailer发送邮件的方法实现
Feb 24 Javascript
JS跨浏览器解析XML应用过程详解
Oct 16 Javascript
javascript函数以及基础写法100多条实用整理
Jan 13 #Javascript
window.requestAnimationFrame是什么意思,怎么用
Jan 13 #Javascript
jquery获取div宽度的实现思路与代码
Jan 13 #Javascript
jQuery实现用方向键控制层的上下左右移动
Jan 13 #Javascript
js模仿html5 placeholder适应于不支持的浏览器
Jan 13 #Javascript
ie6下png图片背景不透明的解决办法使用js实现
Jan 11 #Javascript
关于全局变量和局部变量的那些事
Jan 11 #Javascript
You might like
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
遭遇php的in_array低性能问题
2013/09/17 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
ExtJs的Date格式字符代码
2010/12/30 Javascript
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
js取得url地址参数实例
2013/02/22 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
Python中集合类型(set)学习小结
2015/01/28 Python
简单说明Python中的装饰器的用法
2015/04/24 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
详解Python设计模式之策略模式
2020/06/15 Python
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
导游个人求职信
2014/04/25 职场文书
2015年新农合工作总结
2015/03/30 职场文书
交通安全教育主题班会
2015/08/12 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis