前台向后台传参方式总结
1.URL传参数
这种方式基本结构是: url+?+参数1=1&参数2=2+....
例如:百度搜索的传参方式是
https://www.baidu.com/s?wd=csdn
?是分隔符,多个参数用&连接.
Url传参很方便,但有缺点
(1) 参数长度限制
Google(chrome)对URL的长度限制为8182字节;
Firefox(Browser)对URL的长度限制为65536字节;
Safari(Browser)对URL的长度限制为80000字节;Opera(Browser)对URL的长度限制为190000字节;
IE浏览器对URL的长度现限制为2048字节;
IIS 7 对 Query String 有长度限制;默认:2048 ;
360极速浏览器对URL的长度限制为2118字节;
(2) 传递bean复杂
例如: var time={hour:2,minute:30};
Url?Time=time,以string方式接收将会是object Object
如果后台action里声明的是bean类型属性,可以用
Url?time.hour=2&time.minute=30
但是参数过多的话不适合使用.
2.jQuery中ajax传参数
(1)get方式
$.ajax({
type: "get", //数据发送的方式
url: "", //要发送的后台地址
data: {val1:"1",val2:"2"}, //要发送的数据(参数)格式为{'val1':"1","val2":"2"}
dataType: "json", //后台处理后返回的数据格式
success: function (data) {
//ajax请求成功后触发的方法
alert('请求成功');
},
error: function (msg) {
//ajax请求失败后触发的方法
alert(msg);//弹出错误信 息 }
});
<?php
val1 = $_GET['val1'];
val2 = $_GET['val2'];
?>
(2)post方式
$.ajax({
type: 'POST',
url: url,
data: data,
success: success,
dataType: dataType
});
$.post(
"demo_test_post.asp",
//传递到服务器的值 {
name:"Donald Duck",
city:"Duckburg"
},
//回调函数
function(data,status){
alert("Data: " + data + "Status: " + status);
});
3.form传参
<form id="myForm" action="Handler1.ashx" method="get"> <!-- action里面的连接不能带参数的 --><input type="text" name="id" value="3" />
<input type="text" name="name" value="abc" /> <!-- input必须有name属性 -->
<input type="submit" value="序列化表单值" /> <!-- 必须是type="submit" --></form>
四种get传参方式
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript">
function Go() {
window.location.href="localhost:21811/Handler1.ashx?id=1&name='abc'"
}
</script>
</head>
<body>
<!--//参数传递的几种形式-->
<!--第一种:直接在URL后面加参数:-->
localhost:21811/Handler1.ashx?id=1&name="abc"
<!--第二种:用超链接的方法传递参数:当点击超链接的时候,首先会跳转到localhost:21811/Handler1.ashx页面,然后还会传递id 和name 两个参数过去-->
<a href="localhost:21811/Handler1.ashx?id=1&name='abc'">超链接传递参数</a></body>
<!--第三种:通过js方法传递:用户点击这个button按钮,触发onClick事件,执行Go()方法,跳转到localhost:21811/Handler1.ashx页面,同时传递了id,和name两个参数过去-->
<input type="button" οnclick="Go()" value="通过js方法传递参数" />
<!--第四种:通过form表单传递-->
<form action="Handler1.ashx" method="get"><!--注意action里面的连接不能带参数的-->>
<input type="text" name="id" value="3" />
<input type="text" name="name" value="abc" />
<input type="submit" value="通过传递参数" />
</form>
</body>
</html>