使用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 Bar Indicator 插件实现进度条展示效果
Sep 30 Javascript
jquery+php实现滚动的数字特效
Nov 29 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
Aug 29 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
Apr 12 Javascript
vue微信分享 vue实现当前页面分享其他页面
Dec 02 Javascript
vue页面跳转后返回原页面初始位置方法
Feb 11 Javascript
js+canvas实现滑动拼图验证码功能
Mar 26 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
Jul 06 Javascript
js canvas实现橡皮擦效果
Dec 20 Javascript
layui switch 开关监听 弹出确定状态转换的例子
Sep 21 Javascript
利用原生JS实现欢乐水果机小游戏
Apr 23 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
Oct 28 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语法速查表
2006/12/06 PHP
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
php基于curl扩展制作跨平台的restfule 接口
2015/05/11 PHP
Yii2框架加载css和js文件的方法分析
2019/05/25 PHP
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
js实现checkbox全选和反选示例
2014/05/01 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python Spyder界面无法打开的解决方法
2018/04/27 Python
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
入党积极分子思想汇报范文
2014/01/05 职场文书
教师旷工检讨书
2014/01/18 职场文书
五年级英语教学反思
2014/01/31 职场文书
三八节主持词
2014/03/17 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书
2016春季运动会前导词
2015/11/25 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript