本文实例分析了ajax使用get与post模式的区别。分享给大家供大家参考。具体分析如下:
如果是get 模式的请求,则将传递参数通过url 地址发送到服务器端;
如果是post 模式的请求,则将传递参数通过send( ) 方法发送到服务器端(并且必须设置请求文件头);
post 模式的代码如下:
<script type="text/javascript">
<!--
var querystring = "firstname=xugang&birthday=1227";
var url = "9-3.aspx?timetamp=" + new date().gettime();
xmlhttp.open("post",url);
xmlhttp.setrequestheader("content-type","application/x-www-form-urlencoded");
xmlhttp.send(querystring); //该语句负责发送数据
//-->
</script>
一个演示get 模式与post 模式区别的示例:
客户端:
代码示例:
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html>
<head>
<title>get vs. post</title>
<script language="javascript">
var xmlhttp;
function createxmlhttprequest(){
if(window.activexobject)
xmlhttp = new activexobject("microsoft.xmlhttp");
else if(window.xmlhttprequest)
xmlhttp = new xmlhttprequest();
}
function createquerystring(){
var firstname = document.getelementbyid("firstname").value;
var birthday = document.getelementbyid("birthday").value;
var querystring = "firstname=" + firstname + "&birthday=" + birthday;
return encodeuri(encodeuri(querystring)); //两次编码解决中文乱码问题
}
// get 模式
function dorequestusingget(){
createxmlhttprequest();
var querystring = "9-3.aspx?";
querystring += createquerystring() + "×tamp=" + new date().gettime();
xmlhttp.onreadystatechange = handlestatechange;
xmlhttp.open("get",querystring);
xmlhttp.send(null);
}
// post 模式
function dorequestusingpost(){
createxmlhttprequest();
var url = "9-3.aspx?timestamp=" + new date().gettime();
var querystring = createquerystring();
xmlhttp.open("post",url);
xmlhttp.onreadystatechange = handlestatechange;
xmlhttp.setrequestheader("content-type","application/x-www-form-urlencoded");
xmlhttp.send(querystring);
}
function handlestatechange(){
if(xmlhttp.readystate == 4 && xmlhttp.status == 200){
var responsediv = document.getelementbyid("serverresponse");
responsediv.innerhtml = decodeuri(xmlhttp.responsetext);//解码
}
}
</script>
</head>
<body>
<h2>输入姓名和生日</h2>
<form>
<input type="text" id="firstname" /><br>
<input type="text" id="birthday" />
</form>
<form>
<input type="button" value="get" onclick="dorequestusingget();" /><br>
<input type="button" value="post" onclick="dorequestusingpost();" />
</form>
<div id="serverresponse"></div>
</body>
</html>
服务器端
代码示例:
复制代码 代码如下:
<%@ page language="c#" contenttype="text/html" responseencoding="gb2312" %>
<%@ import namespace="system.data" %>
<%
if(request.httpmethod == "post")
response.write("post: " + request["firstname"] + ", your birthday is " + request["birthday"]);
else if(request.httpmethod == "get")
response.write("get: " + request["firstname"] + ", your birthday is " + request["birthday"]);
%>
<%@ import namespace="system.data" %>
<%
if(request.httpmethod == "post")
response.write("post: " + request["firstname"] + ", your birthday is " + request["birthday"]);
else if(request.httpmethod == "get")
response.write("get: " + request["firstname"] + ", your birthday is " + request["birthday"]);
%>
通常在数据不多,并且不敏感的时候,使用get 模式的请求;
而数据量大,或者数据敏感的时候,使用post 模式的请求。
希望本文所述对大家的ajax程序设计有所帮助。
嘉言懿行还要阳光