名站网址导航为大家免费提供关于网站编程方面的知识。
escape()、encodeURI()、encodeURIComponent()区别详解He6AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
He6AIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
在JQUERY AJAX开发中遇到了下面的一个问题,在执行AJAX请求的时候,需要传递一个“50%”的参数,而这个参数中含有特殊字符%。这样的话就会出现问题了,我们知道网站服务器在发送请求的时候,会将url中的参数转化成类似于“,/?:@&=+$#”,所以在我们执行含有这样特殊字符的ajax请求的时候就会出现错误,因为我们传递的参数可能发生了变化,也可能由于参数本身中就含有特殊字符所以系统没有办法编译它。
可能会抛出这样的一个异常:
警告: Parameters: Character decoding failed. Parameter skipped.
解决的办法:
1、改变传递参数的形式:
例如:
var testUrl ="param1=" cond1 "¶ms2=" cond2 ;
$.ajax({
type:"POST",
url:"testUrl",
data:allParams,
success:function(data){
}
}); |
在上面这段具体相关代码如下中
如果cond2 = “50%”,那么这个参数中就有了%特殊字符,这样执行的话可定时会有问题。怎么修改呢?
我们说过了改变传递参数的形式
修改data部分,以json格式的数据传递,这样就可以避免由于特殊字符引起的错误参数问题:
data:{‘param1’:cond1,’param2’:cond2} |
2、还是按照例子1中的传递方式传递参数,只不过为了达到我们的目的,我们对要传递的参数进行编码。
例如,如果还是例子1,我们把testUrl修改成下面这种写法,使用encodeURIComponent(urlString)函数对url中传递的参数做编码操作就可以了:
var testUrl ="param1=" cond1 "¶ms2=" encodeURIComponent(cond2); |
关于网站编程方面的知识就说道这里了,希望能够对大家有作用。,ajax,请求,中,传递,的,参数,如果,含有,特殊,字符,