视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
如何用原生JS实现Ajax的GETPOST请求
2020-11-27 20:12:33 责编:小采
文档


传统方法的的缺陷

传统的web交互是用户触发一个http请求服务器,然后服务器收到之后,在做出响应到用户,并且返回一个新的页面,,每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都要返回一个完整的HTML页,而用户每次都要浪费时间和带宽去重新读取整个页面。这个做法浪费了许多带宽,由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。

Ajax出现

ajax的出现,刚好解决了传统方法的缺陷。AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

Get请求

<!DOCTYPE html><html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 </head>
 <body>
 <p id="showInfo"></p>
 <form id="form">
 用户名:<input type="text" name="username" id="username"/><br />
 密码:<input type="password" name="password" id="passowrd" />
 <input type="button" value="提交" id="btn" />
 </form>
 <script type="text/javascript">
 window.onload=function(){
 var btn=document.getElementById("btn");
 btn.onclick=function(){
 var username=document.getElementById("username").value; 
 var password=document.getElementById("passowrd").value; 
 var xhr=null; 
 if(window.XMLHttpRequest){
 xhr=new XMLHttpRequest();
 }else{
 xhr=new ActiveXObject('Microsoft.XMLHTTP');
 } var url='new_file.php?username='+username+'&password='+password;
 xhr.open('get',url,true);
 xhr.onreadystatechange=function(){
 if(xhr.readyState==4){ if(xhr.status==200){ var data=xhr.responseText; if(data==1){
 document.getElementById("showInfo").innerHTML='提交失败';
 }else if(data==2){
 document.getElementById("showInfo").innerHTML='提交成功后';
 }
 }
 }
 }
 xhr.send(null);
 }
 } </script>
 </body></html>

Post请求

new_file.php

<?php 
//$username = $_GET['username'];
//$password = $_GET['password'];$username=$_POST['username'];
 $password=$_POST['password'];
 if($username == 'admin' && $password == '123'){ 
 echo 2;
}else{ 
 echo 1;
}
?>

注意:
ajax请求是异步请求,所以open的第三个参数应该设置为ture,可是我试过在get请求的时候,false,也就是设置为同步请求,仍然不会报错,但是还是推荐设置为true:进行异步请求。

下载本文
显示全文
专题