使用Post提交时须将空格转换成加号的解释
发布时间:2023-07-02 05:18:19
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


猜你喜欢
- 网上找了挺久,感觉方法都不合适我这新手,想了个歪点子from tkinter import *from tkinter import mes
- 本文实例讲述了python使用 __init__初始化操作。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-#
- 今天要用python做一个小功能,那就是实现万年历的查询。首先看一下整体感觉实现代码:def is_leap_year(year): &nb
- 先来看一个概念:数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全
- 神经网络模型一般用来做分类,回归预测模型不常见,本文基于一个用来分类的BP神经网络,对它进行修改,实现了一个回归模型,用来做室内定位。模型主
- 如下所示:#coding:utf-8import binasciia = 'worker'#先把worker转换成二进制数据
- 什么是 MyBatis?MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 J
- 在实际的数据库应用中,我们经常遇到这样一个问题,连接到Oracle数据库的用户在作了一次操作后,再也没有后续操作,但却长时间没有和数据库断开
- 看这篇文章前强烈建议你看看上一篇python实现梯度下降法:一、为什么要提出随机梯度下降算法注意看梯度下降法权值的更新方式(推导过程在上一篇
- 前言大家好,我们今天来爬取c站的高校名单,把其高校名单,成员和内容数获取下来,不过,我们发现这个网站比我们平时多了一个验证,下面看看我是怎么
- import sysimport urllibfrom urllib import requestimport osfrom bs4 imp
- 为什么会讲 MRO?在讲多继承的时候,有讲到, 当继承的多个父类拥有同名属性、方法,子类对象调用该属性、方法时会调用哪个父类的属性、方法呢?
- 前言为了参加某个作秀活动,研究了一波如何结合小程序、科大讯飞实现语音录入、识别的实现。科大讯飞开发文档中只给出 Python 的 demo,
- 在数据生产应用部门,取数分析是一个很常见的需求,实际上业务人员需求时刻变化,最高效的方式是让业务部门自己来取,减少不必要的重复劳动,一般情况
- 远程登录控制台Scrapy附带一个内置的telnet控制台,用于检查和控制Scrapy运行过程。telnet控制台只是一个运行在scrapp
- 本文实例讲述了Python基于回溯法子集树模板解决数字组合问题。分享给大家供大家参考,具体如下:问题找出从自然数1、2、3、...、n中任取
- 一、源码分析Django 发布的 1.4 版本中包含了一些安全方面的重要提升。其中一个是使用 PBKDF2 密码加密算法代替了 SHA1 。
- 学习复杂代码的最好方法是简化:(function(win, undefined) { var jQuery = f
- 1、字符串的索引与获取字符串的索引方式与列表的索引方式是一样的。只不过列表是每个元素的自身就有一个索引位置,而字符串是每个字符就有一个索引位
- 前言在安装完python及pip,setuptools等工具后,即可以创建virualenv虚拟环境了,这个类似于虚拟机的工具,可以让同一台