使用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 相关文章推荐
javascript据option的value值快速设定初始的selected选项
Aug 13 Javascript
JavaScript函数、方法、对象代码
Oct 29 Javascript
动态刷新 dorado树的js代码
Jun 12 Javascript
javascript与webservice的通信实现代码
Dec 25 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
Nov 13 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
Mar 04 Javascript
js强制把网址设为默认首页
Sep 29 Javascript
基于JavaScript实现回到页面顶部动画代码
May 24 Javascript
Bootstrap导航中表单简单实现代码
Mar 06 Javascript
Vue.js的复用组件开发流程完整记录
Nov 29 Javascript
vue.js多页面开发环境搭建过程
Apr 24 Javascript
js实现简单的随机点名器
Sep 17 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
PHP高自定义性安全验证码代码
2011/11/27 PHP
PHP基础知识回顾
2012/08/16 PHP
form自动提交实例讲解
2017/07/10 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
javascript 写类方式之二
2009/07/05 Javascript
取得窗口大小 兼容所有浏览器的js代码
2011/08/09 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
Node.js中的事件驱动编程详解
2014/08/16 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
Vue实现简易计算器
2020/02/25 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
python如何调用百度识图api
2020/09/29 Python
测量实习生自我鉴定
2013/09/19 职场文书
自动化职业生涯规划书范文
2014/01/03 职场文书
学校卫生检查制度
2014/02/03 职场文书
工地安全检查制度
2014/02/04 职场文书
幼儿园毕业家长感言
2014/02/10 职场文书
教师党员公开承诺书
2014/03/25 职场文书
顶岗实习协议书
2015/01/29 职场文书
员工年度工作总结2015
2015/05/18 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
2016年母亲节寄语
2015/12/04 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书