六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 44|回复: 0

Ajax的post方法的使用

[复制链接]

升级  30%

3

主题

3

主题

3

主题

童生

Rank: 1

积分
15
 楼主| 发表于 2013-1-29 11:23:24 | 显示全部楼层 |阅读模式
刚开始学Ajax,看到很多网上的代码都用Get方法提交参数,Tomcat默认ISO编码实在是让人头痛,对付乱码我都是用过滤器做字符编码过滤的,Get方法过滤器监听不到,所以我一直喜欢使用Post方法,下面对Ajax Get和Post方法做一对比

GET:
<mce:script type="text/javascript"><!--       var xmlHttpRequest;       function createXMLHttpRequest(){           try          {          // Firefox, Opera 8.0+, Safari           xmlHttpRequest=new XMLHttpRequest();           }        catch (e)           {           // Internet Explorer          try            {              xmlHttpRequest=new ActiveXObject("Msxml2.XMLHTTP");             }          catch (e)             {               try               {                 xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");                }             catch (e)                {                alert("您的浏览器不支持AJAX!");                return false;                }             }           }         }       //发送请求函数       function sendRequestPost(url,param){           createXMLHttpRequest();           xmlHttpRequest.open("GET",url+"?"+param,true);           xmlHttpRequest.onreadystatechange = processResponse;       }       //处理返回信息函数       function processResponse(){           if(xmlHttpRequest.readyState == 4){               if(xmlHttpRequest.status == 200){                   var res = xmlHttpRequest.responseText;                   window.alert(res);               }else{                   window.alert("请求页面异常");               }           }       }       //身份验证函数       function userCheck(){           var userName = document.loginForm.username.value;           var psw = document.loginForm.password.value;           if(userName == ""){               window.alert("用户名不能为空");               document.loginForm.username.focus();               return false;           }           else{               var url = "Servlet/userLogin_do";               var param = "userName="+userName+"&psw="+psw;               sendRequestPost(url,param);           }       }   // --></mce:script>  <mce:script type="text/javascript"><!--var xmlHttpRequest;function createXMLHttpRequest(){try    {   // Firefox, Opera 8.0+, Safari    xmlHttpRequest=new XMLHttpRequest();    } catch (e)    {  // Internet Explorer   try      {   xmlHttpRequest=new ActiveXObject("Msxml2.XMLHTTP");      }   catch (e)      {      try         {      xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");         }      catch (e)         {         alert("您的浏览器不支持AJAX!");         return false;         }      }    }}//发送请求函数function sendRequestPost(url,param){createXMLHttpRequest();xmlHttpRequest.open("GET",url+"?"+param,true);xmlHttpRequest.onreadystatechange = processResponse;}//处理返回信息函数function processResponse(){if(xmlHttpRequest.readyState == 4){if(xmlHttpRequest.status == 200){var res = xmlHttpRequest.responseText;window.alert(res);}else{window.alert("请求页面异常");}}}//身份验证函数function userCheck(){var userName = document.loginForm.username.value;var psw = document.loginForm.password.value;if(userName == ""){window.alert("用户名不能为空");document.loginForm.username.focus();return false;}else{var url = "Servlet/userLogin_do";var param = "userName="+userName+"&psw="+psw;sendRequestPost(url,param);}}// --></mce:script>
POST:<mce:script type="text/javascript"><!--       var xmlHttpRequest;       function createXMLHttpRequest(){           try          {          // Firefox, Opera 8.0+, Safari           xmlHttpRequest=new XMLHttpRequest();           }        catch (e)           {           // Internet Explorer          try            {              xmlHttpRequest=new ActiveXObject("Msxml2.XMLHTTP");             }          catch (e)             {               try               {                 xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");                }             catch (e)                {                alert("您的浏览器不支持AJAX!");                return false;                }             }           }         }       //发送请求函数       function sendRequestPost(url,param){           createXMLHttpRequest();           xmlHttpRequest.open("POST",url,true);           xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");           xmlHttpRequest.onreadystatechange = processResponse;           xmlHttpRequest.send(param);       }       //处理返回信息函数       function processResponse(){           if(xmlHttpRequest.readyState == 4){               if(xmlHttpRequest.status == 200){                   var res = xmlHttpRequest.responseText;                   window.alert(res);               }else{                   window.alert("请求页面异常");               }           }       }       //身份验证函数       function userCheck(){           var userName = document.loginForm.username.value;           var psw = document.loginForm.password.value;           if(userName == ""){               window.alert("用户名不能为空");               document.loginForm.username.focus();               return false;           }           else{               //var url = "Servlet/userLogin_do?userName="+userName+"&psw="+psw;               var url = "Servlet/userLogin_do";               var param = "userName="+userName+"&psw="+psw;               sendRequestPost(url,param);           }       }   // --></mce:script>  <mce:script type="text/javascript"><!--var xmlHttpRequest;function createXMLHttpRequest(){try    {   // Firefox, Opera 8.0+, Safari    xmlHttpRequest=new XMLHttpRequest();    } catch (e)    {  // Internet Explorer   try      {   xmlHttpRequest=new ActiveXObject("Msxml2.XMLHTTP");      }   catch (e)      {      try         {      xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");         }      catch (e)         {         alert("您的浏览器不支持AJAX!");         return false;         }      }    }}//发送请求函数function sendRequestPost(url,param){createXMLHttpRequest();xmlHttpRequest.open("POST",url,true);xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xmlHttpRequest.onreadystatechange = processResponse;xmlHttpRequest.send(param);}//处理返回信息函数function processResponse(){if(xmlHttpRequest.readyState == 4){if(xmlHttpRequest.status == 200){var res = xmlHttpRequest.responseText;window.alert(res);}else{window.alert("请求页面异常");}}}//身份验证函数function userCheck(){var userName = document.loginForm.username.value;var psw = document.loginForm.password.value;if(userName == ""){window.alert("用户名不能为空");document.loginForm.username.focus();return false;}else{//var url = "Servlet/userLogin_do?userName="+userName+"&psw="+psw;var url = "Servlet/userLogin_do";var param = "userName="+userName+"&psw="+psw;sendRequestPost(url,param);}}// --></mce:script>
可以发现,GET方法根据地址栏解析参数,post根据sendRequestPost(url,param);中的param字符串解析参数,重要的是POST方法中需要添加在open();方法后需要添加xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");这句代码,不知道为什么,初学,加了就能传递参数了,日后研究。。。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表