使用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 语法集锦 脚本之家基础推荐
Nov 15 Javascript
JS高级笔记
Jul 13 Javascript
妙用Jquery的val()方法
Jun 27 Javascript
JS文本框追加多个下拉框的值的简单实例
Jul 12 Javascript
JavaScript插件化开发教程 (四)
Jan 27 Javascript
Knockout自定义绑定创建方法
Dec 26 Javascript
全面介绍javascript实用技巧及单竖杠
Jul 18 Javascript
JS获得一个对象的所有属性和方法实例
Feb 21 Javascript
js实现悬浮窗效果(支持拖动)
Mar 09 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
Mar 14 Javascript
关于Angularjs中跨域设置白名单问题
Apr 17 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
Feb 25 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下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
php去除HTML标签实例
2013/11/06 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
node通过express搭建自己的服务器
2017/09/30 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
2019/07/25 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
Python跳出多重循环的方法示例
2019/07/03 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
HTML5制作表格样式
2016/11/15 HTML / CSS
轻松制作精彩视频:Animoto
2018/09/19 全球购物
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
一套软件测试笔试题
2014/07/25 面试题
应届毕业生就业自荐信
2013/10/26 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
2014年党建工作总结
2014/11/11 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
Vue深入理解插槽slot的使用
2022/08/05 Vue.js