`
zhouyrt
  • 浏览: 1172088 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

参数有中包含空格且使用Post提交时须将空格转换成加号

阅读更多

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

分享到:
评论

相关推荐

    使用Post提交时须将空格转换成加号的解释

    本文将详细解释为何在使用POST提交时需要将空格转换成加号(+)。 首先,我们需要理解URL编码(URL Encoding),这是对特殊字符进行编码的过程,以确保它们能在URL中安全传输。在JavaScript中,`encodeURIComponent...

    js的form表单提交url传参数(包含+等特殊字符)的两种解决方法

    这篇文章将介绍两种在JavaScript中处理表单提交时URL参数包含特殊字符(如"+")的解决方法。 首先,需要了解在URL中常用的特殊字符及其编码形式,这是因为这些字符如果直接出现在URL参数中,可能会被浏览器误解为...

    完美解决js传递参数中加号和&号自动改变的方法

    在JavaScript中,当我们使用GET方法传递参数时,可能会遇到加号"+"和"&"字符被自动转换的问题。这是因为HTTP协议在解析URL时,会对特定字符进行编码,以避免它们与URL的结构产生冲突。"+"通常会被解析为空格,"&"则...

    Lua解码http post数据

    return string.char(tonumber(h, 16)) -- 将十六进制数字转换成对应的ASCII字符 end) return s end ``` ##### 2. `decode`函数 该函数是整个解码过程的核心,它接收一个URL编码的字符串作为输入,并返回一个表...

    java使用URLDecoder和URLEncoder对中文字符进行编码和解码

    在`encode`方法中,通常会将空格转换为加号"+",而其他非字母数字字符则会被转换为"%xy"形式,xy是该字符的ASCII值的16进制表示。例如,中文字符在UTF-8编码下会转换为多个百分号序列。 ```java String urlStr = ...

    前后台传值乱码问题万能思想,通用

    5. **处理边界情况**:对于一些特殊字符,如空格、加号(+)等,需要特别注意它们在URL编码和解码中的转换规则。 通过以上方法,可以有效地预防和解决大部分的前后台传值乱码问题。但需要注意,每个项目可能有其...

    两种方法解决javascript url post 特殊字符转义 + & #

    如果需要传递的URL片段中包含有特殊字符,可以使用这个函数进行编码。 例如,使用encodeURIComponent()函数对特殊字符进行转义的示例如下: ```javascript alert(encodeURIComponent("-")); // 转码后得到"-" ...

    阿里云监控服务-API手册-D.docx

    4. 随机数:SignatureNonce必须在不同请求中使用不同的值,防止重放攻击。 总的来说,阿里云监控服务的新版API提供了一套安全、高效的监控数据查询方案。通过理解和掌握这些API的使用方法,用户可以实现自动化监控...

    node js qs库 离线安装版本

    要实现这一点,你可以先在有网络的环境下使用`npm install --save qs`命令下载QS库,然后将`node_modules`目录复制到离线环境,这样就可以在新的项目中使用QS库了,而无需重新下载。 在实际开发中,Node.js的QS库...

    powerbuilder

    由于PowerBuilder使用数值0(即ASCII码为0的字符)结束每个字符串,因此,如果打印控制序列中包含了数值0,应用程序需要使用其它字符在参数string中替代数值0,并用zerochar参数指明这个替代字符。一般来说,应该...

    PHP中的序列化和反序列化

    当需要在URL中传递序列化后的数据时,由于URL中某些字符有特殊含义,如空格会被转换为加号`+`,因此需要使用`urlencode()`函数对序列化字符串进行编码。同样,当从URL中获取这些数据时,应使用`urldecode()`解码。 ...

    Android数据传输中的参数加密代码示例

    本文将深入探讨如何在Android中实现数据传输的参数加密,以确保数据在传输过程中的安全性。 首先,我们要明白数据传输的方式通常有两种:GET和POST。GET请求常用于获取数据,而POST请求更适合提交数据。然而,无论...

    浅谈php中urlencode与rawurlencode的区别

    因此,在某些场景下,如URL路径或查询字符串中,使用`urlencode`可能导致解析问题,因为加号(+)在URL中通常表示空格,而在POST数据中则代表空格。 相比之下,`rawurlencode`遵循了RFC 3986标准,它会将所有非字母...

    风吟PHP Escape 加密/解密

    3. **rawurlencode**:与`urlencode`类似,但此函数按照RFC 3986编码,仅对非字母数字字符中的空格转换为加号 `+`,其他字符转换为百分号 `%` 跟两位十六进制数。在某些情况下,比如在POST请求中,`rawurlencode`...

    PHP中文URL编解码(urlencode()rawurlencode()

    之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式...

    基于javascript如何传递特殊字符

    当你在JavaScript中使用AJAX发送数据时,尤其是POST请求,需要注意某些特殊字符可能会影响数据的解析。例如,加号(+)在URL编码中代表空格,和号(&)用于分隔不同的参数。如果原始数据包含这些字符,它们可能会...

    Jquery css选择器

    - 描述:使用加号"+"连接前后两个选择器,选择器中的元素有相同的父元素,且后一个元素紧跟在前一个元素之后。 - 示例:`p + h2` 选择所有紧随`<p>`元素之后的`<h2>`元素。 **2. 普通兄弟组合** - 描述:使用...

Global site tag (gtag.js) - Google Analytics