AJAX-day02-AJAX原理

这篇具有很好参考价值的文章主要介绍了AJAX-day02-AJAX原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,开发语言

目录

XMLHttpRequest

了解XMLHttpRequest

使用 XMLHttpRequest  

XMLHttpRequest - 查询参数

XMLHttpRequest - 数据提交

Promise

了解Promise

Promise - 三种状态

封装_简易axios_获取省份列表  


XMLHttpRequest

了解XMLHttpRequest

定义: AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,开发语言

关系:axios 内部采用 XMLHttpRequest 与服务器交互 AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,开发语言

好处:掌握使用 XHR 与服务器进行数据交互,了解 axios 内部原理

使用 XMLHttpRequest  

步骤:
1. 创建 XMLHttpRequest 对象
2. 配置 请求方法 和请求 url 地址
3. 监听 loadend 事件,接收 响应结果
4. 发起请求 AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,开发语言
<script>
    /**
     * 目标:使用XMLHttpRequest对象与服务器通信
     *  1. 创建 XMLHttpRequest 对象
     *  2. 配置请求方法和请求 url 地址
     *  3. 监听 loadend 事件,接收响应结果
     *  4. 发起请求
    */
   //1.创建XMLHttpRequest对象
   const xhr = new XMLHttpRequest()
   //2.配置请求方法和请求url地址
   xhr.open('GET','http://hmajax.itheima.net/api/province')
   xhr.addEventListener('loadend',()=>{
    console.log(xhr.response)
   })
   xhr.send()
  </script>

XMLHttpRequest - 查询参数

定义:浏览器提供给服务器的 额外信息 ,让服务器返回浏览器想要的数据
语法:http://xxxx.com/xxx/xxx ? 参数名1=值1 & 参数名2=值2 AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,开发语言
<body>
  <p class="city"></p>
  <script>
    /**
     * 目标:使用XHR携带查询参数,展示某个省下属的城市列表
    */
    const xhr = new XMLHttpRequest()
    xhr.open('GET','http://hmajax.itheima.net/api/city?pname=河南省')
    xhr.addEventListener('loadend',()=>{
      //打印字符串
      console.log(xhr.response)
      //将字符串转换为对象
      const data=JSON.parse(xhr.response)
      document.querySelector('.city').innerHTML=data.list.join('<br>')
    })
    xhr.send()
  </script>
</body>

XMLHttpRequest - 数据提交

需求:通过 XHR 提交用户名和密码,完成注册功能
核心:
请求头 设置 Content-Type:application/json
请求体 携带 JSON 字符串 AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,开发语言
<body>
  <button class="reg-btn">注册用户</button>
  <script>
    /**
     * 目标:使用xhr进行数据提交-完成注册功能
    */
    document.querySelector('.reg-btn').addEventListener('click', () => {
      const xhr = new XMLHttpRequest()
      xhr.open('POST','http://hmajax.itheima.net/api/register')
      xhr.addEventListener('loadend',()=>{
        //打印字符串
        console.log(xhr.response)
      })
      //设置请求头
      xhr.setRequestHeader('Content-Type','application/json')
      //准备提交的数据
      const userObj={
        username:'zxc123456',
        password:'7654321'
      }
      const userStr=JSON.stringify(userObj)
      //设置请求体,发起请求
      xhr.send(userStr)
    })
  </script>
</body>

</html>

Promise

了解Promise

定义:AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,开发语言文章来源地址https://www.toymoban.com/news/detail-602618.html

好处:
1. 逻辑更清晰
2. 了解 axios 函数内部运作机制
3. 能解决回调函数地狱问题
语法:
AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,开发语言AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,开发语言
<body>
  <script>
    /**
     * 目标:使用Promise管理异步任务
    */
    // 1. 创建Promise对象
    const p = new Promise((resolve, reject) => {
      // 2. 执行异步代码
      setTimeout(() => {
        // resolve('模拟AJAX请求-成功结果')
        reject(new Error('模拟AJAX请求-失败结果'))
      }, 2000)
    })

    // 3. 获取结果
    p.then(result => {
      console.log(result)
    }).catch(error => {
      console.log(error)
    })
  </script>
</body>

Promise - 三种状态

作用:了解Promise对象如何 关联 处理函数 ,以及代码执行顺序
概念:一个Promise对象,必然处于以下几种状态之一
        待定(pending) :初始状态,既没有被兑现,也没有被拒绝
        已兑现(fulfilled) :意味着,操作成功完成
        已拒绝(rejected) :意味着,操作失败
AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,开发语言
注意:Promise对象一旦被 兑现/拒绝
就是 已敲定 了,状态无法再被改变

封装_简易axios_获取省份列表  

需求:基于 Promise + XHR 封装 myAxios 函数,获取省份列表展示
步骤:
1. 定义 myAxios 函数,接收 配置对象 ,返回 Promise 对象
2. 发起 XHR 请求,默认请求方法 为 GET
3. 调用成功/失败的处理程序
4. 使用 myAxios 函数,获取 省份列表展示 AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,开发语言
<body>
  <p class="my-p"></p>
  <script>
    
    /**
     * 目标:封装_简易axios函数_获取省份列表
     *  1. 定义myAxios函数,接收配置对象,返回Promise对象
     *  2. 发起XHR请求,默认请求方法为GET
     *  3. 调用成功/失败的处理程序
     *  4. 使用myAxios函数,获取省份列表展示
    */
    //1.定义myAxios函数,接收配置对象,返回Promise对象
    function myAxios(config){
      return new Promise((resolve,reject)=>{
        //2.发起xhr请求,默认请求方法为GET
        const xhr = new XMLHttpRequest()
        xhr.open(config.method || 'GET',config.url)
        xhr.addEventListener('loadend',()=>{
          //3.调用成功/失败的处理程序
          if(xhr.status>=200&&xhr.status<300){
            resolve(JSON.parse(xhr.response))
          }
          else{
            reject(new Error(xhr.response))
          }
        })
        xhr.send()
      })
    }
    //4.使用myAxios函数,获取省份列表展示
    myAxios({
      url:'http://hmajax.itheima.net/api/province'
    }).then(result=>{
      console.log(result);
      document.querySelector('.my-p').innerHTML=result.list.join('<br>')
    }).catch(error=>{
      console.log(error);
    })
  </script>
</body>

到了这里,关于AJAX-day02-AJAX原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • day27--AJAX(bootstrap之modal,toast;接口文档的一些用法;AJAX原理)

    目录 Bootstrap之Modal: 显示和隐藏方法 通过自定义属性: 使用JS来控制弹框: Bootstrap之Toast: 接口文档一些用法: 删除图书: 图片上传: 图片上传步骤: 修改头像: AJAX原理: 使用XHLHTTPREQUEST四步走: XHLHTTPREQUEST--查询参数: XHLHTTPREQUEST--请求参数: Promise: Promise三种状态

    2024年02月07日
    浏览(50)
  • 前端架构师之01_JavaScript_Ajax

    1.1 Web服务器 Web服务器又称为网站服务器,主要用于提供网上信息浏览服务。 常见的Web服务器软件有Apache HTTP Server(简称Apache)、Nginx等。 浏览器与服务器交互 在Web服务器中,请求资源又分为静态资源和动态资源。 静态资源的特点:只要服务器没有修改这些文件,客户端每

    2024年02月07日
    浏览(32)
  • 前端学习记录~2023.8.10~JavaScript重难点实例精讲~第6章 Ajax

    本章是第六章Ajax相关的内容。 Ajax是一种流行的前后端数据交互的方式,通过异步请求就可以在不需要刷新页面的情况下,达到局部刷新的效果。 Ajax并非是一种全新的技术,而是由以下技术组合而成: 使用CSS和XHTML做页面呈现 使用DOM进行交互和动态显示 使用XMLHttpRequest对象

    2024年02月11日
    浏览(28)
  • 前端框架前置学习(3) AJAX原理 XMLHttpRequest,Promise,简易axios函数封装

    1.获取图片文件对象  // 文件选择元素-change改变事件 document.querySelector(\\\'.upload\\\').addEventListener(\\\'change\\\', e = {       // 1. 获取图片文件       console.log(e.target.files[0]) 2.使用FormData携带文件  // 2. 使用 FormData 携带图片文件       const fd = new FormData()       fd.append(\\\'img\\\', e.target.files[0

    2024年02月03日
    浏览(34)
  • javascript常见100问|前端基础知识|问ajax-fetch-axios-区别请用 XMLHttpRequestfetch 实现 ajax节流和防抖px em rem vw/箭头函数的缺点

    HTML CSS JS HTTP 等基础知识是前端面试的第一步,基础知识不过关将直接被拒。本章将通过多个面试题,讲解前端常考的基础知识面试题,同时复习一些重要的知识点。 扎实的前端基础知识,是作为前端工程师的根本。基础知识能保证最基本的使用,即招聘进来能干活,能产出

    2024年04月27日
    浏览(38)
  • 【b站咸虾米】jQuery的ajax异步操作 web前端后端分离技术的原理

    课程地址:【jQuery的ajax异步操作 web前端后端分离技术的原理】 https://www.bilibili.com/video/BV1u5411M7ny/?share_source=copy_webvd_source=b1cb921b73fe3808550eaf2224d1c155 通过案例学习ajax异步操作。 介绍 php,前后端不分离的技术。 ajax,实现前后端分离技术。 在之前,要做动态网站,要懂php,ja

    2024年04月15日
    浏览(33)
  • 跟着pink老师前端入门教程(JavaScript)-day02

    1、什么是变量 白话:变量就是一个装东西的盒子 通俗:变量是用于存储数据的‘ 容器 ’,通过 变量名 获取数据,甚至数据可以修改 注意: 变量不是数据本身,它们仅仅是一个用于存储数值的容器。可以理解为是一个个用来装东西的纸箱子。 2、变量在内存中的存储 本质

    2024年02月20日
    浏览(29)
  • 什么是AJAX?如何使用原生JavaScript进行AJAX请求?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月07日
    浏览(29)
  • 什么是AJAX?如何使用原生JavaScript搭建AJAX请求?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月11日
    浏览(30)
  • JavaScript--AJAX

    目录 概述 XMLHttpRequest对象  方法和属性 示例一: 示例二: 传统的web交互是用户触发一个http请求服务器,然后服务器收到之后,在做出响应到用户,并且返回一个新的页面,每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、只需从服务

    2024年02月14日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包