今天在处理一个问题时,将url地址栏中参数不显示。各种百度、尝试后,发现改变请求方式就可以解决。
参数在传递时可以采用如下的四种:URL,超链接,js,form表单传参
一、URL
把参数值附在url后面传递到其他页面
如:localhost:21811/Handler1.ashx?id=1&name="abc"
二、超链接
用超链接的方法传递参数
如:<a href="localhost:21811/Handler1.ashx?id=1&name='abc'">超链接传递参数</a>
当点击超链接的时候,首先会跳转到localhost:21811/Handler1.ashx页面,然后还会传递id 和name 两个参数过去
三、js传参
(1)使用window.location.href进行参数传递
如:<input type="button" οnclick="Go()" value="通过js方法传递参数" />
function Go() {
window.location.href="localhost:21811/Handler1.ashx?id=1&name='abc'"
}
用户点击这个button按钮,触发onClick事件,执行Go()方法,跳转到localhost:21811/Handler1.ashx页面,同时传递了id,和name两个参数过去-->
(2)H5 web storage缓存参数:localStroage 和 sessionStorage
sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。
localStorage 用于将大量数据(最大5M)保存在浏览器中。
(3)Cookie缓存参数:使用浏览器Cookie传递参数
注:(2)、(3)的参数的传递使用于不同页面的传递。其他的方式则是前、后端的参数的传递。
四、Form 表单
Form表单通过URL传递参数,分post和get两种。post把数据内容放在请求的数据正文部分,没有长度的限制;get则是把数据内容直接跟在请求的头部的URL后面,有长度的限制。一般在表单的数据提交中,都会选择POST方式,因为使用GET方法数据是通过URL传递的,在地址栏中会直接看到传递的数据,这样就缺少安全性。使用POST传递时,是把提交的数据放置在HTTP包的包体中,地址栏不会看到数据。
如:var form = $("<form>");
form.attr('style', 'display:none');
form.attr('target', '_blank'); //新打开页签
form.attr('method', 'post'); //url的请求方式
form.attr('action', url(请求的地址));
var input1 = $('<input>');
input1.attr('type', 'hidden');
input1.attr('name', 'msg');
input1.attr('value', messageResult(传递的参数));
$('body').append(form);
form.append(input1);
form.submit();
form.remove();
上面实例是通过模拟form 的post请求方式,传递参数,并打开一个新的页签。
而java 的后台则可以用 request.getParameter(“msg”)获取传递的参数。
参考文献:
(js有哪几种传参方式)、等