在URL中传带百分号%的参数的两种方法:直接传编码或使用encodeURI

有个需求要在前端发请求,且上送的参数写在了URL里面。有个参数值就是“%”。如果直接上送送%作为参数,URL大概长成这样:

"../../xxxServlet/xxxService?paraA=123&paraB=%&paraC=246"

上面的URL本意是要上送一个参数paraB,这个参数的值就是%,但是URL中百分号%本身就是用来对不安全字符进行编码的一个特殊字符,如果你需要在URL中传递一个带%的参数,那么这个%就需要进行转义或编码,以防止解析URL时造成歧义。


那么在URL中传递%可以有两种处理方法:

1.直接传一个%对应的编码

%对应的编码为%25,那么上面的URL就可改写为

"../../xxxServlet/xxxService?paraA=123&paraB=%25&paraC=246"


2.如果你并不能记得这些不安全字符的对应编码,也可以使用JavaScript的encodeURI来处理你的URL,但是要注意encodeURI并不会对在URL中有特殊含义的字符进行编码:

",/?:@&=+$#"

那么处理方式就是

var finalURL = encodeURI("../../xxxServlet/xxxService?paraA=123&paraB=%&paraC=246")

然后就得到了

"../../xxxServlet/xxxService?paraA=123&paraB=%25&paraC=246"

殊途同归。


参考资料

HTML URL编码表: http://www.w3school.com.cn/tags/html_ref_urlencode.html

JS encodeURI方法: http://www.w3school.com.cn/jsref/jsref_encodeuri.asp


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值