欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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() + "&timestamp=" + 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"]);
%>

通常在数据不多,并且不敏感的时候,使用get 模式的请求;

而数据量大,或者数据敏感的时候,使用post 模式的请求。

希望本文所述对大家的ajax程序设计有所帮助。