JS原生Ajax实现:GET与POST请求详解

作者:异步漫步

时间:2026-10-30

浏览:269

本文详细介绍如何使用JavaScript原生XMLHttpRequest对象发起GET和POST请求。重点解析跨浏览器兼容性问题,包括IE6-8的ActiveXObject处理,以及请求状态监听与数据获取。文章强调代码需置于同一脚本标签内以确保功能正常,并提供完整的请求示例供参考。

文章目录

JS原生Ajax GET请求实现

在JavaScript中实现Ajax的GET请求,核心在于使用XMLHttpRequest对象。该对象是发起异步通信的基础组件,负责与服务器进行数据交换。


<script type="text/javascript"> 
/* 创建 XMLHttpRequest 对象 */ 
var xmlHttp; 
function GetXmlHttpObject(){ 
  if (window.XMLHttpRequest){ 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
  }else{// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
  } 
  return xmlhttp; 
} 
// -----------ajax方法-----------// 
function getLabelsGet(){ 
  xmlHttp=GetXmlHttpObject(); 
  if (xmlHttp==null){ 
    alert('您的浏览器不支持AJAX!'); 
    return; 
  } 
  var id = document.getElementById('id').value; 
  var url="http://www.Leefrom.com?id="+id+"&t/"+Math.random(); 
  xmlHttp.open("GET",url,true); 
  xmlHttp.onreadystatechange=favorOK;//发送事件后,收到信息了调用函数 
  xmlHttp.send(); 
}
function getOkGet(){ 
  if(xmlHttp.readyState==1||xmlHttp.readyState==2||xmlHttp.readyState==3){ 
    // 本地提示:加载中 
  } 
  if (xmlHttp.readyState==4 && xmlHttp.status==200){ 
    var d= xmlHttp.responseText; 
    // 处理返回结果 
  } 
} 
</script>

JS原生Ajax POST请求实现

对于POST请求,同样依赖XMLHttpRequest对象,但需在发送数据前正确设置请求头,并通过send方法传递参数。POST通常用于提交表单数据或较大负载的信息。


<script type="text/javascript"> 
/* 创建 XMLHttpRequest 对象 */ 
var xmlHttp; 
function GetXmlHttpObject(){ 
  if (window.XMLHttpRequest){ 
   // code for IE7+, Firefox, Chrome, Opera, Safari 
   xmlhttp=new XMLHttpRequest(); 
  }else{// code for IE6, IE5 
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
  } 
  return xmlhttp; 
} 
// -----------ajax方法-----------// 
function getLabelsPost(){ 
  xmlHttp=GetXmlHttpObject(); 
  if (xmlHttp==null){ 
    alert('您的浏览器不支持AJAX!'); 
    return; 
  } 
  var url="http://www.lifefrom.com/t/"+Math.random(); 
  xmlhttp.open("POST",url,true); 
  xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
  xmlhttp.send(); 
  xmlHttp.onreadystatechange=getLabelsOK;//发送事件后,收到信息了调用函数 
} 
function getOkPost(){ 
  if(xmlHttp.readyState==1||xmlHttp.readyState==2||xmlHttp.readyState==3){ 
    // 本地提示:加载中/处理中 
                         
  } 
  if (xmlHttp.readyState==4 && xmlHttp.status==200){ 
    var d=xmlHttp.responseText; // 返回值 
    // 处理返回值 
  } 
} 
</script>

XMLHttpRequest使用注意事项

关键注意事项:XMLHttpRequest对象必须在调用Ajax方法的同一个<script>标签内创建。若跨标签或异步加载导致作用域分离,请求将失败且无法返回数据。无论是GET还是POST,均需确保对象实例化与调用逻辑在同一脚本块中。

以上关于JS原生Ajax GET和POST的实现方法即为全部内容,旨在为开发者提供清晰的技术参考。欢迎收藏与分享,获取更多前端技术资源。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章