IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Ajax基本讲解 -> 正文阅读

[JavaScript知识库]Ajax基本讲解

一、Ajax是什么

Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest。 [3] 使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。

二、使用步骤

1.使用get方法

代码如下(示例):

  <script src="https://cdn.bootcdn.net/ajax/libs/qs/6.10.1/qs.min.js"></script>
  <script>
    var qq = '1024543289';
    var data = {
      username: 'zhangsan',
      password: '123321'
    }
    var qs = Qs;
    // 1.创建一个xhr实例对象
    var xhr = new XMLHttpRequest();
    // 2.设置请求头,打开请求连接
    xhr.open('get','https://api.muxiaoguo.cn/api/QqInfo?' + qs.stringify(data))
    // 3.设置请求体,并发送请求
    xhr.send();
    // 4.监听连接状态的改变,做出相应
    xhr.onreadystatechange = function() {
      if(xhr.readyState === 4 && xhr.status === 200){
        console.log(xhr.response);
      }
    }
  </script>

2.使用post方法

代码如下(示例):

<script src="https://cdn.bootcdn.net/ajax/libs/qs/6.10.1/qs.min.js"></script>
  <script>
    var data = {
      qq: '1024543289'
    }
    var qs = Qs;
    // 1.创建一个xhr实例对象
    var xhr = new XMLHttpRequest();
    // 2.设置请求头,打开请求连接
    xhr.open('post','https://api.muxiaoguo.cn/api/QqInfo')
    // 2.1修改post请求的请求头:Content-Type:x-www-form-urlencoded
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
    // 3.设置请求体,并发送请求
    xhr.send(qs.stringify(data));
    // 4.监听连接状态的改变,做出相应
    xhr.onreadystatechange = function() {
      if(xhr.readyState === 4 && xhr.status === 200){
        console.log(xhr.response);
      }
    }
  </script>

3.封装ajax请求后再调用

代码如下(示例):

// 封装ajax请求

var qs =  Qs;
// get请求
function get(url,data,success,error,token) {
  // 1.实例化xhr对象
  var xhr = new XMLHttpRequest();
  // 2.设置请求,打开请求连接
  // 判断是否需要传参
  if(data) {
    xhr.open('get',url + '?' + qs.stringify(data))
  } else {
    xhr.open('get', url)
  }
  // 配置认证信息
  if(token) {
    // 配置认证信息
    xhr.setRequestHeader('Authorization',token)
  }
  // 3.发送请求
  xhr.send()
  // 4.监听连接的状态,并做出响应
  xhr.onreadystatechange = function() {
    if(xhr.readyState === 4 && xhr.status === 200){
      success(xhr.response)
    } else if(xhr.readyState === 4 && xhr.status !== 200){
      error(xhr.response)
    }
  }
}
// post方法
function post(url,data,dataType,success,error,token) {
  var xhr = new XMLHttpRequest();
  xhr.open('post',url)
  // 设置请求头
  xhr.setRequestHeader('Content-Type',dataType)
  if(token) {
    // 配置认证信息
    xhr.setRequestHeader('Authorization',token)
  }
  xhr.send(data)
  xhr.onreadystatechange = function() {
    if(xhr.readyState === 4 && xhr.status === 200) {
      success(xhr.response)
    } else if(xhr.readyState === 4 && xhr.status !== 200){
      error(xhr.response)
    }
  }
}

ajax的调用

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="https://cdn.bootcdn.net/ajax/libs/qs/6.10.1/qs.min.js"></script>
  <script src="./utils.js"></script>//引入封装ajax的js文件
  <title>Document</title>
  <script>
    var url = 'https://api.muxiaoguo.cn/api/lajifl'
    var data = {
      m:'易拉罐'
    }
    get(url,data,function(res) {
      // 将JSON字符串转成普通对象
      console.log(JSON.parse(res));
      var resp = JSON.parse(res)
      // 将后台请求回来的数据,生成dom节点,并且加载到页面上
      var dom = document.getElementsByTagName('div')[0]
      dom.innerText = resp.data.description.Release_requirement
    },function(res) {
      console.log(res);
    });
    // 调用utils中的post方法
    var loginUrl = 'http://47.94.46.113:7788/user/login'
    var loginData = {
      username: 'admin1',
      password: '123321'
    } 
    post(loginUrl, JSON.stringify(loginData), 'application/json', function(res){
      // 将login接口返回的token秘钥赋值给token变量
      var token = JSON.parse(res).data.token
      // 请求消息的findAll接口
      var articleUrl = 'http://47.94.46.113:7788/article/findAll'
      get(articleUrl, null, function(res) {
        console.log(res);
      }, function(res) {}, token)
    }, function(res) {})
  </script>
</head>
<body>
  <div class="box"></div>
</body>
</html>

总结

综合各种变化的技术和强耦合的客户服务端环境,Ajax 提出了一种新的开发方式。Ajax 开发人员必须理解传统的 MVC 架构,这限制了应用层次之间的边界。同时,开发人员还需要考虑 B/S 环境的外部和使用 Ajax 技术来重定型 MVC 边界。最重要的是,Ajax 开发人员必须禁止以页面集合的方式来考虑 Web 应用而需要将其认为是单个页面。一旦 UI 设计与服务架构之间的范围被严格区分开来后,开发人员就需要更新和变化的技术集合了。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章           查看所有文章
加:2021-08-09 10:09:16  更:2021-08-09 10:11:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 5:04:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码