Ajax的Get、Post方法的使用

本文对比分析了Ajax中GET和POST方法的实现原理及应用场景,重点介绍了如何通过POST方法发送请求,并强调了设置Content-Type的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚开始学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);  
        }  
    }  

 

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("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);
  }
 }


可以发现,GET方法根据地址栏解析参数,post根据sendRequestPost(url,param);中的param字符串解析参数,重要的是POST方法中需要添加在open();方法后需要添加xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");这句代码,不知道为什么,初学,加了就能传递参数了,日后研究

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值