超链接 地址 中文参数,例如:
http://ip:port/a.html?param=文件.zip //对应后台 @RequestParam 参数映射形式
http://ip:port/a.html/文件.zip // 对应后台 rest风格的 @pathVariable 参数映射形式
请求会报错,所以,传参的时候需要用方法 encodeURI() 编码一下。
var a = '文件.zip';
var param = encodeURI(a);
var url = 'http://xxx.ssx.xx/a.html?param='+param;
var a = document.createElement('a');
a.href=url;
a.download = filename;
a.click() //这样就可以成功了
这样参数就可以传递过去
@GetMapping("/save")
public String save(@RequestParam param){
String str = java.net.URLDecoder.decode(param,"UTF-8");//解码方式
return "/index";
}
如果担心参数中有特殊字符,再用base64编码一次就好了,这样双重编码,可以解决参数传递中的,特殊字符,中文报错问题。
js base64编码,后台解码 用 java.util 包下的 Base64 类即可
网友评论