Ajax 技术详解

Ajax 技术详解

一、Ajax 基础概念

Ajax (Asynchronous JavaScript and XML) 是一种用于创建快速动态网页的技术。它主要作用包括:

  1. 数据交换:在后台与服务器交换少量数据
  2. 异步通信:不刷新整个页面的情况下更新部分网页内容

典型应用场景:

  • 表单验证(实时检查用户名是否可用)
  • 搜索建议(输入时自动补全)
  • 分页加载(滚动到底部自动加载更多内容)
  • 实时数据更新(股票行情、聊天消息)

二、Axios 封装库

Axios 是一个基于 Promise 的 HTTP 客户端,对原生 Ajax 进行了封装,主要优势:

  1. 简化书写:提供更简洁的 API
  2. 功能增强
    • 自动转换 JSON 数据
    • 客户端支持防御 XSRF
    • 支持请求和响应拦截
    • 取消请求功能

三、Axios 详细语法

基本请求语法

javascript 复制代码
axios({
  method: '请求方法',  // GET/POST/PUT/DELETE 等
  url: '请求路径',     // 接口地址
  // 其他配置项...
})
.then(function (response) {
  // 处理成功响应
})
.catch(function (error) {
  // 处理错误
});

配置项详解

  1. method:HTTP 请求方法

    • GET:获取数据(默认值)
    • POST:提交数据
    • PUT:更新数据
    • DELETE:删除数据
  2. url:请求的资源路径

    • 绝对路径:https://api.example.com/users
    • 相对路径:/api/users(需设置 baseURL)
  3. data:请求体数据(POST/PUT/PATCH 使用)

    javascript 复制代码
    data: {
      firstName: '张',
      lastName: '三'
    }
  4. params:URL 查询参数(GET 使用)

    javascript 复制代码
    params: {
      ID: 12345,
      type: 'vip'
    }
    // 实际请求URL为:/api/user?ID=12345&type=vip

响应处理

  1. 成功回调(.then)

    javascript 复制代码
    .then(function (result) {
      console.log(result.data);  // 服务器返回的数据
      console.log(result.status); // HTTP 状态码
      console.log(result.headers); // 响应头信息
    })
  2. 失败回调(.catch)

    javascript 复制代码
    .catch(function (error) {
      if (error.response) {
        // 服务器返回了错误状态码
        console.log(error.response.status);
        console.log(error.response.data);
      } else if (error.request) {
        // 请求已发出但无响应
        console.log('请求超时');
      } else {
        // 其他错误
        console.log(error.message);
      }
    })

四、快捷方法

Axios 提供了常用 HTTP 方法的快捷方式:

javascript 复制代码
// GET 请求
axios.get('/user', {
  params: {
    ID: 12345
  }
})

// POST 请求
axios.post('/user', {
  firstName: '张',
  lastName: '三'
})

// 并发请求
axios.all([
  axios.get('/user/123'),
  axios.get('/user/123/permissions')
])
相关推荐
Csvn4 小时前
OpenSpec 详细使用教程
前端
之歆5 小时前
Day19_LESS 完全指南——从入门到工程实践
前端·css·less
云水一下6 小时前
HTML5 从入门到精通:实战收官——从零搭建完整静态网站,综合运用所有知识
前端·html5
不总是6 小时前
Windows 系统 Node.js 免安装版(zip)安装与配置教程(2026 最新)
前端·windows·node.js
冬奇Lab6 小时前
每日一个开源项目(第105篇):Twenty - 跳出 Salesforce 的圈套,定义现代开源 CRM
前端·后端·开源
zhangyao9403307 小时前
开发pc端时,表格的高度怎么设置才能铺满页面
前端·javascript·elementui
kjs--7 小时前
浏览器书签执行脚本
前端
之歆8 小时前
Day16_JavaScript 轮播图与事件工程实战(下篇)
服务器·开发语言·前端·javascript·网络·性能优化
沄媪8 小时前
CSRF 跨站请求伪造
前端·ctf·csrf
kyriewen8 小时前
我关掉了Copilot:因为我写的代码出现在了别人的建议里
前端·javascript·ai编程