JS中的Ajax

封装原生 Ajax 请求

在 JavaScript 中,可以通过封装原生的 Ajax 请求来进行与服务器的数据交互。下面是一个封装了原生 Ajax 请求的示例代码,以及对代码的详细注解。

1.简单的Ajax封装代码

复制代码
 <h2>ajax原生</h2>
    <script>
        //1.创建xhr对象
        var xhr = new XMLHttpRequest();
        //2.准备发送('请求方式get/post','url地址',boolean)布尔值是异步,默认为true
        xhr.open('get','ajax.php',true)
        //3.发送 send(),get请求send()为空,
        xhr.send();
        //4.监听函数
        //备注,监听当前ajax请求,经行到哪一步,
        xhr.onreadystatechange=function(){
            //状态改变,5种状态
           if(xhr.readyState===4&&xhr.status===200){
            console.log(xhr.responseText)
           }
        }    
        
    </script>

2.标准的Ajax封装代码

javascript 复制代码
/**
 * 发起 Ajax 请求
 * @param {string} method - 请求方法,如 'GET' 或 'POST'
 * @param {string} url - 请求 URL
 * @param {object} data - 请求数据,可选
 * @param {function} successCallback - 请求成功的回调函数,可选
 * @param {function} errorCallback - 请求失败的回调函数,可选
 */
function ajaxRequest(method, url, data, successCallback, errorCallback) {
  // 创建 XMLHttpRequest 对象
  var xhr = new XMLHttpRequest();

  // 监听请求状态变化
  xhr.onreadystatechange = function () {
    if (xhr.readyState === XMLHttpRequest.DONE) {
      if (xhr.status === 200) {
        // 请求成功
        if (successCallback) {
          successCallback(xhr.responseText);
        }
      } else {
        // 请求失败
        if (errorCallback) {
          errorCallback(xhr.status);
        }
      }
    }
  };

  // 打开请求
  xhr.open(method, url, true);

  // 设置请求头
  xhr.setRequestHeader('Content-Type', 'application/json');

  // 发送请求
  if (data) {
    xhr.send(JSON.stringify(data));
  } else {
    xhr.send();
  }
}

上述代码封装了一个名为 ajaxRequest 的函数,用于发起 Ajax 请求。下面是对函数参数和代码逻辑的详细注解:

  • method:请求方法,可以是 'GET''POST' 等。
  • url:请求的 URL。
  • data:请求的数据,可选参数。如果需要向服务器发送数据,可以通过这个参数传递。
  • successCallback:请求成功的回调函数,可选参数。当请求成功时,将调用此函数,并将服务器返回的响应文本作为参数传递给它。
  • errorCallback:请求失败的回调函数,可选参数。当请求失败时,将调用此函数,并将 HTTP 状态码作为参数传递给它。

在函数内部,首先创建了一个 XMLHttpRequest 对象,用于发送 Ajax 请求。然后通过监听 xhr 对象的 onreadystatechange 事件,来处理请求状态的变化。

xhr.readyState 的值等于 XMLHttpRequest.DONE 时,表示请求已完成。此时,根据 xhr.status 的值判断请求成功还是失败。如果 xhr.status 的值等于 200,表示请求成功,调用 successCallback 函数并将服务器返回的响应文本作为参数传递给它;否则,表示请求失败,调用 errorCallback 函数并将 HTTP 状态码作为参数传递给它。

接下来,使用 xhr.open 方法打开请求,并使用 xhr.setRequestHeader 方法设置请求头为 'Content-Type': 'application/json'。最后,使用 xhr.send 方法发送请求,如果存在 data 参数,则将其转换为 JSON 字符串并发送。

通过调用 ajaxRequest 函数,可以方便地发起 Ajax 请求,并通过传递回调函数来处理请求的结果。

相关推荐
pingan878724 分钟前
试试 docx.js 一键生成 Word 文档,效果很不错
开发语言·前端·javascript·ecmascript·word
结网的兔子1 小时前
前端学习笔记——Element Plus 栅格布局系统示例
前端·javascript·css
zhensherlock2 小时前
Protocol Launcher 系列:App Store 精准引流与应用推广
javascript·macos·ios·typescript·iphone·mac·ipad
泯泷2 小时前
从零构建寄存器式 JSVMP:实战教程导读
前端·javascript·算法
叫我一声阿雷吧2 小时前
JS 入门通关手册(24):Promise:从回调地狱到异步优雅写法
javascript·前端开发·promise·前端面试·异步编程·js进阶·js异步
必胜刻2 小时前
AJAX 请求理解
前端·ajax·okhttp·前后端交互
zhensherlock3 小时前
Protocol Launcher 系列:Trae AI 编辑器的深度集成
javascript·人工智能·vscode·ai·typescript·编辑器·ai编程
吠品3 小时前
Vue项目Moment.js引入优化:全局挂载与按需引入的深度解析与最佳实践
前端·javascript·vue.js
不甜情歌3 小时前
JS 类型判断不用愁:4 种方法,覆盖所有场景
前端·javascript
共享家95273 小时前
单例模式( 饿汉式与懒汉式 )
开发语言·javascript·ecmascript