特殊符号
记录一个前端问题
使用layer.open打开小窗口只能使用get请求,传递的参数中包含URL解析时的特殊字符,eg:
'/case/getCaseInfo?caseCode=${caseInfo.caseCode}&fileName='+data.info
然后data.info中包含&、= 的特殊字符,eg: u=2729906829,3399182358&fm=26&gp=0.jpg,
传到后台后解析出错,接收的数据跟实际不一致的情况。
使用方法: encodeURIComponent()菜鸟教程
使用一个前端的方法encodeURIComponent(param),上面的可以替换为
'/case/getCaseInfo?caseCode=${caseInfo.caseCode}&fileName='+encodeURIComponent(data.info),
就可以正常向后台传递准确的参数。下面是标识的含义
字符 | 含义 | 可替换为 |
---|---|---|
# | 表示书签 | %23 |
% | 指定是一个特殊字符 | %25 |
& | URL 中指定的参数间的分隔符 | %26 |
+ | 表示空格 | %2B |
/ | 分隔目录和子目录 | %2F |
空格 | URL中的空格可以用+号或者编码 | %20 |
= | URL 中指定参数的值 | %3D |
? | 分隔实际的URL和参数 | %3F |
汉字
前端
encodeURIComponent("要传的汉字或者包含特殊字符")
java 后端
URLDecoder.decode(name, "UTF-8")