ajax传参里含有特殊字符报400的坑

问题场景:今天在测试自己手上的页面功能时,发现一个小bug,在用ajax向后台发数据时,只要参数中出现一些特殊字符,控制台会报错http 400的问题,其实就是特殊字符服务器不能解析。好了,问题是找到了,但是改如何解决勒!

方案一:var str= para.replace(/%/g,"%25");//g代表全局匹配替换
方案二: urlTemp=encodeURI(urlTemp);//使用改方法自动转码

        或 encodeURIComponent(str); 。

区别参考:

简单明了区分escape、encodeURI和encodeURIComponent

下面是一些常见字符列表

url特殊符号 在url中实际含义 转码后的十六进制表示

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


解决方案其实都是类似的,这个看自己的习惯。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值