使用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 相关文章推荐
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
Apr 10 Javascript
jQuery 仿百度输入标签插件附效果图
Jul 04 Javascript
Javascript进制转换实例分析
May 14 Javascript
详解JavaScript对象类型
Jun 16 Javascript
JS 拦截全局ajax请求实例解析
Nov 29 Javascript
基于JavaScript实现自动更新倒计时效果
Dec 19 Javascript
详解Angular 4.x NgTemplateOutlet
May 24 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
Jun 22 Javascript
jQuery UI实现动画效果代码分享
Aug 19 jQuery
vue中改变滚动条样式的方法
Mar 03 Javascript
Vue实现PC端靠边悬浮球的代码
May 09 Javascript
Javascript新手入门之字符串拼接与变量的应用
Dec 03 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
国内咖啡文化
2021/03/03 咖啡文化
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
php中如何执行linux命令详解
2018/11/06 PHP
php中数组最简单的使用方法
2020/12/27 PHP
强制设为首页代码
2006/06/19 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
微信小程序实现tab切换效果
2017/11/21 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
vue基于viewer实现的图片查看器功能
2019/04/12 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
Python实现的rsa加密算法详解
2018/01/24 Python
Linux下python制作名片示例
2018/07/20 Python
Python作用域与名字空间原理详解
2020/03/21 Python
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
什么是网络协议
2016/04/07 面试题
大学生四个方面的自我评价
2013/09/19 职场文书
初中政治教学反思
2014/01/17 职场文书
关于迟到的检讨书
2014/01/26 职场文书
全国道德模范事迹
2014/02/01 职场文书
班风学风建设方案
2014/05/06 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
处罚决定书范文
2015/06/24 职场文书
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js