$.post()也是带参数向服务器发出数据请求。全局函数$.post()与$.get()在本质上没有太大区别,不同的是,GET方式不适合传递数据量较大的数据,同时,其请求的历史信息会保存在浏览器的缓存中,有一定的安全风险。而POST方式向服务器发送数据请求,则不存在这两个不足。$.post()语法格式如下:
$.post(url,[data],[callback],[type])
其中,参数与$.get()函数参数代表的意义完全相同。
使用全局函数post()向服务器请求数据
(1)功能描述
在客户端页面中增加一个下拉列表框,用于“性别”的选项,单击“请求”按钮后,传递两个参数name与sex的值,向服务器页面User_Info.aspx发出数据请求,服务器页面接收参数值后,响应请求,将相应数据发送到客户端。
(2)实现代码
新建一个HTML文件(全局post()向服务器请求数据)
<script type="text/javascript" src="Jscript/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(function(){
$("#Button1").click(function(){ //按钮单击事件
//打开文件通过回调函数返回服务器响应后的数据
$.post("User_Info.aspx",
{ name:encodeURI($("#txtName").val()),
sex:encodeURI($("#selSex").val())
},
function(data) {
$("#divTip")
.empty() //先清空标记中的内容
.html(data); //显示服务器返回的数据
})
})
})
</script>
另外,新建一个服务器端文件User_Info.aspx,该文件的代码内容如下所示:
<% Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%
String strName = System.web.HttpUtility.UrlDecode(Request["name"]); //解码姓名字符
String strSex = System.web.HttpUtility.UrlDecode(Request["sex"]); //解码性别字符
String strHTML ="<div class='clsShow'>"; //初始化保存内容变量
if (strName == "tgr" && strSex=="男")
{
strHTML += "姓名:tgr<br>";
strHTML += "性别:男<br>";
strHTML += "邮箱:tao_guo_rong@163.com<hr>";
}
else if (strName == "李建洲" && strSex=="女")
{
strHTML += "姓名:李建洲<br>";
strHTML += "性别:女<br>";
strHTML += "邮箱:xiaoli@163.com<hr>";
}
strHTML += “</div>”
Response.Write(strHTML);
%>