原生JavaScript实现Ajax的完整指南:从XMLHttpRequest创建到GET/POST请求

作者:青柠

时间:2026-10-30

浏览:536

本文详细讲解如何使用原生JavaScript实现Ajax功能。内容涵盖XMLHttpRequest对象的兼容性创建方法(包括ActiveXObject处理),以及通过该对象发起GET和POST请求的具体代码实现。重点解析请求头设置、状态监听及数据交互流程,适用于需要理解底层网络通信机制的开发者参考。

文章目录

原生JavaScript实现Ajax概述

本文旨在分享使用原生JavaScript编写Ajax功能的代码示例,供读者参考学习。

XMLHttpRequest对象的兼容性创建


var getXmlHttpRequest = function() {
  if (window.XMLHttpRequest) {
    //主流浏览器提供了XMLHttpRequest对象
    return new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    //低版本的IE浏览器没有提供XMLHttpRequest对象
    //所以必须使用IE浏览器的特定实现ActiveXObject
    return new ActiveXObject("Microsoft.XMLHttpRequest");
  }

};
var xhr = getXmlHttpRequest();
xhr.onreadystatechange = function() {
  console.log(xhr.readyState);
  if (xhr.readyState === 3 && xhr.status === 200) {
    //获取成功后执行操作
    //数据在xhr.responseText
    console.log(xhr.responseText);
  }
};
xhr.open("get", "data.php", true);
xhr.send("");

接下来介绍几种利用JavaScript实现原生Ajax的具体方法。在发起Ajax请求前,首要步骤是创建XMLHttpRequest对象。若浏览器不支持该对象,则需回退使用ActiveXObject进行创建,具体实现方式如下所示。


var xmlHttp; 
function createxmlHttpRequest() { 
if (window.ActiveXObject) { 
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} else if (window.XMLHttpRequest) { 
xmlHttp=new XMLHttpRequest(); 
} 

(1)利用上述创建的xmlHttp对象,实现最基础的Ajax GET请求:

实现Ajax GET请求


function doGet(url){ 
// 注意在传参数值的时候最好使用encodeURI处理一下,以防出现乱码 
createxmlHttpRequest(); 
xmlHttp.open("GET",url); 
xmlHttp.send(null); 
xmlHttp.onreadystatechange = function() { 
if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) { 
alert('success'); 
} else { 
alert('fail'); 
} 
} 
} 

(2)利用上述创建的xmlHttp对象,实现最基础的Ajax POST请求:

实现Ajax POST请求


function doPost(url,data){ 
// 注意在传参数值的时候最好使用encodeURI处理一下,以防出现乱码 
createxmlHttpRequest(); 
xmlHttp.open("POST",url); 
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
xmlHttp.send(data); 
xmlHttp.onreadystatechange = function() { 
if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) { 
alert('success'); 
} else { 
alert('fail'); 
} 
} 
} 

以上内容为本文的全部代码与说明,希望对读者的学习过程有所帮助。

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章