AJAX使用get与post模式的区别分析
程序员文章站
2023-11-09 19:55:34
本文实例分析了ajax使用get与post模式的区别。分享给大家供大家参考。具体分析如下:
如果是get 模式的请求,则将传递参数通过url 地址发送到服务器端;
如果...
本文实例分析了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程序设计有所帮助。