时间:2021-05-26
背景:
今天在做一个任务时,用Jquery的Ajax传递一长串字符时,在后台的验证一直不成功,纠结时我了(那个字符串是随机生成的,特长)。查了一上午,原来是我生成的字符串中有+号,而在js传递的时候,会理解为是连接字符用的,到了后台就将+号自动变为空格了,所以后台的字符串和前台生成的已经不一样了。
原因:
js后自动解析特殊字符,如+号为连接符,解析为空格,&为变量连接符,服务器端接受数据时&以后的数据不显示等等。
解决办法:
1、将字符放到form中,然后用js提交form表单到服务器。
2、将字符中的特殊字符替换成十六进制的字符,一些特殊字符与十六进制的对应关系:
+空格/?%&=#%2B%20%2F%3F%25%26&3D%23
str = str.replace(/\+/g,"%2B"); 将+号替换为十六进制
3、最简单的一种,使用encodeURIComponent()函数。
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在URL传递参数中,有一些特殊字符,而这些些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。下表中列出了一些URL特
在jQuery中,我们通常利用$.ajax或$.post进行数据传递处理,但这里通常不能传递特殊字符,如:“
前言JSon数据中的String传递数据时,需要处理好特殊字符.本文主要给大家总结介绍了关于golang、rust、java和Python对特殊字符的json序
本文实例讲述了js常用方法、检查是否有特殊字符串、倒序截取字符串操作。分享给大家供大家参考,具体如下:js常用方法demo
例如:通过url传递中文参数:xxx.do?name=名字&age=十八岁解决办法:1、在html页面,通过js的encodeURI方法对字符2次编码encod