js传参数受特殊字符影响错误

JavaScript014

js传参数受特殊字符影响错误,第1张

encodeURI 方法

将文本字符串编码为一个有效的统一资源标识符 (URI)。

encodeURI(URIString)

必选的 URIString 参数代表一个已编码的 URI。

说明

encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:":"、"/"、"" 和 "?"。请使用 encodeURIComponent 方法对这些字符进行编码。

工作中遇到的小问题,一个页面中通过window.showModel("comm/morelanguage.jsp?str=zh_CN:爱#zh_TW:爱en:love",,,,)弹出另一个页面并将参数传递到另一个页面,另一个页面接受得到src参数值时会出现问题,值不对,测试过是因为#特殊字符的问题,对于这些特殊字符我采取的办法是

传参数时,str=escape('str=zh_CN:爱#zh_TW:爱en:love')处理

接受参数时,拿到str后str=unescape(str)

方法一:(伪装form表单提交)

linkredwin

=

function(A,B,C,D,E,F,G){

var

formredwin

=

document.createElement("form")

formredwin.method

=

'POST'

document.body.appendChild(formredwin)

formredwin.action

=

"http://www.A.com/A.wiki?A="

+encodeURI(A)

+

"&B="

+encodeURIComponent(B)

+

"&C="

+encodeURI(C)

+

"&D="

+encodeURI(D)

+

"&E="

+encodeURI(E)

+

"&F="

+encodeURI(F)

+"&G="+encodeURI(G)

formredwin.submit()

formredwin.parentNode.removeChild(formredwin)

}

方法二:

1.

+

URL

中+号表示空格

%2B

2.

空格

URL中的空格可以用+号或者编码

%20

3.

/

分隔目录和子目录

%2F

4.

?

分隔实际的

URL

和参数

%3F

5.

%

指定特殊字符

%25

6.

#

表示书签

%23

7.

&

URL

中指定的参数间的分隔符

%26

8.

=

URL

中指定参数的值

%3D

以上这篇js的form表单提交url传参数(包含+等特殊字符)的两种解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。