js中get请求参数含有特殊字符的处理

发布时间 2023-12-01 11:36:01作者: 马克笔

在拼接参数的时候,使用 encodeURIComponent() 进行手动转义。
var url= "xxxx?name=" + encodeURIComponent("aaa&bbb")

特殊特殊字符的含义:

字符特殊字符的含义URL编码
+ URL 中+号表示空格 %2B
空格 URL中的空格可以用+号或者编码 %20
/ 分隔目录和子目录 %2F
? 分隔实际的 URL 和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& URL 中指定的参数间的分隔符 %26
= URL 中指定参数的值 %3D

 

示例代码:

//处理特殊字符get请求识别错误的情况
//filename为带有特殊字符的url字符串
var curFilename = null;
//含有特殊字符的话,处理完再赋值(没有处理空字符串)
if(filename.indexOf('#') != -1 || filename.indexOf('+') != -1 || filename.indexOf('/') != -1 || filename.indexOf('?') != -1 || filename.indexOf('%') != -1 || filename.indexOf('&') != -1 || filename.indexOf('=') != -1){
curFilename = filename.replace(/([\#|\+|\/|\?|\%|\#|\&|\=])/g, function ($1) {
return encodeURIComponent($1)
})
}else{
//如果不含有特殊字符直接赋值
curFilename = filename;
}
//发送请求(我这里是我项目中封装的,大家正常发送请求就可以)
Cm.get(Cm.webroot + curFilename, function (msg) {

},function (msg) {

})