问题描述
我想通过action传递参数,但是参数串里面含有&,当请求到达另外一个页面时却收不到字符‘&’以后的内容这是为什么?如2.jsp内容:<script type="text/javascript">function doUrl(openurl) { document.forms[0].action = openurl; document.forms[0].submit(); }function send(){ var d = 'cresourcemaintain.do?act=linedetail&lineid=' + lineid; var url = "1.jsp?url="+d; doUrl(url); }send();</script><form name="myform" method="post"/>1.jsp 的内容如下: <%=request.getParameter("url")%> 值为:cresourcemaintain.do?act=linedetail也就是说&后面的值都没有了,这是为什么? 问题补充:xiaogui363 写道
解决方案
编码的问题吧因为&符号有特殊含义的,需要使用JS的encodeURI()或者encodeURIComponent()方法编码,后台再解码以后处理encodeURI()和encodeURIComponent()方法的区别可以参考这里http://www.iteye.com/topic/739223
解决方案二:
提交表单跟超链接是不同的两种方式,虽然地址栏上都可以看到我们提交的值,但是:1.提交表单时,action只是指定我们提交表单的路径,传递的值是<form></form>元素内部的表单元素值.2.超链接传值时,在url里将值写上.