url地址做参数的问题?

比如请求地址是"aaa.action?id=111&url=bbb.action?id=222&param=sss"
服务端解析时会出现问题,本来“bbb.action?id=222&param=sss”整个作为参数传递现在参数url的值变成了“bbb.action?id=222”,有什么方法可以解决,js有没有函数能够编码的?

这种问题使用encodeURI也是无法实现的
后台还是会依据?和&来进行解析参数
因为url=bbb.action?id=222&param=sss这个参数中含有一些特殊字符
所以这里使用escape将这些特殊字符使用%xx编码代替

[code="java"]
var url = "aaa.action?id=111&url="+escape("bbb.action?id=222&param=sss");
[/code]

需要单独处理得值用escape进行编码

[code="java"]
params:url--> value:bbb.action?id=222&param=sss
params:id--> value:111
[/code]

后台可以直接取到值

最简单的办法就是约定替换
bbb.action?id=222&param=sss
?-->
&-->
后台处理时根据需要还原,注意这种参数的长度是有限制的

找相关的 encodeURI 编码

用post提交就可以

/c:url 这个 好像就可以, 其实原理就是进行base64编码了。