比如请求地址是"aaa.action?id=111&url=bbb.action?id=222¶m=sss"
服务端解析时会出现问题,本来“bbb.action?id=222¶m=sss”整个作为参数传递现在参数url的值变成了“bbb.action?id=222”,有什么方法可以解决,js有没有函数能够编码的?
这种问题使用encodeURI也是无法实现的
后台还是会依据?和&来进行解析参数
因为url=bbb.action?id=222¶m=sss这个参数中含有一些特殊字符
所以这里使用escape将这些特殊字符使用%xx编码代替
[code="java"]
var url = "aaa.action?id=111&url="+escape("bbb.action?id=222¶m=sss");
[/code]
需要单独处理得值用escape进行编码
[code="java"]
params:url--> value:bbb.action?id=222¶m=sss
params:id--> value:111
[/code]
后台可以直接取到值
最简单的办法就是约定替换
bbb.action?id=222¶m=sss
?-->
&-->
后台处理时根据需要还原,注意这种参数的长度是有限制的
找相关的 encodeURI 编码
用post提交就可以
/c:url 这个 好像就可以, 其实原理就是进行base64编码了。