国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

AJAX-day02-AJAX原理

這篇具有很好參考價(jià)值的文章主要介紹了AJAX-day02-AJAX原理。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

(創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動(dòng)力,如果看完對(duì)你有幫助,請(qǐng)留下您的足跡)

AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,開(kāi)發(fā)語(yǔ)言

目錄

XMLHttpRequest

了解XMLHttpRequest

使用 XMLHttpRequest ?

XMLHttpRequest - 查詢參數(shù)

XMLHttpRequest - 數(shù)據(jù)提交

Promise

了解Promise

Promise - 三種狀態(tài)

封裝_簡(jiǎn)易axios_獲取省份列表 ?


XMLHttpRequest

了解XMLHttpRequest

定義: AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,開(kāi)發(fā)語(yǔ)言

關(guān)系:axios 內(nèi)部采用 XMLHttpRequest 與服務(wù)器交互?AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,開(kāi)發(fā)語(yǔ)言

好處:掌握使用 XHR 與服務(wù)器進(jìn)行數(shù)據(jù)交互,了解 axios 內(nèi)部原理

使用 XMLHttpRequest ?

步驟:
1. 創(chuàng)建 XMLHttpRequest 對(duì)象
2. 配置 請(qǐng)求方法 和請(qǐng)求 url 地址
3. 監(jiān)聽(tīng) loadend 事件,接收 響應(yīng)結(jié)果
4. 發(fā)起請(qǐng)求 AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,開(kāi)發(fā)語(yǔ)言
<script>
    /**
     * 目標(biāo):使用XMLHttpRequest對(duì)象與服務(wù)器通信
     *  1. 創(chuàng)建 XMLHttpRequest 對(duì)象
     *  2. 配置請(qǐng)求方法和請(qǐng)求 url 地址
     *  3. 監(jiān)聽(tīng) loadend 事件,接收響應(yīng)結(jié)果
     *  4. 發(fā)起請(qǐng)求
    */
   //1.創(chuàng)建XMLHttpRequest對(duì)象
   const xhr = new XMLHttpRequest()
   //2.配置請(qǐng)求方法和請(qǐng)求url地址
   xhr.open('GET','http://hmajax.itheima.net/api/province')
   xhr.addEventListener('loadend',()=>{
    console.log(xhr.response)
   })
   xhr.send()
  </script>

XMLHttpRequest - 查詢參數(shù)

定義:瀏覽器提供給服務(wù)器的 額外信息 ,讓服務(wù)器返回瀏覽器想要的數(shù)據(jù)
語(yǔ)法:http://xxxx.com/xxx/xxx ? 參數(shù)名1=值1 & 參數(shù)名2=值2 AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,開(kāi)發(fā)語(yǔ)言
<body>
  <p class="city"></p>
  <script>
    /**
     * 目標(biāo):使用XHR攜帶查詢參數(shù),展示某個(gè)省下屬的城市列表
    */
    const xhr = new XMLHttpRequest()
    xhr.open('GET','http://hmajax.itheima.net/api/city?pname=河南省')
    xhr.addEventListener('loadend',()=>{
      //打印字符串
      console.log(xhr.response)
      //將字符串轉(zhuǎn)換為對(duì)象
      const data=JSON.parse(xhr.response)
      document.querySelector('.city').innerHTML=data.list.join('<br>')
    })
    xhr.send()
  </script>
</body>

XMLHttpRequest - 數(shù)據(jù)提交

需求:通過(guò) XHR 提交用戶名和密碼,完成注冊(cè)功能
核心:
請(qǐng)求頭 設(shè)置 Content-Type:application/json
請(qǐng)求體 攜帶 JSON 字符串 AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,開(kāi)發(fā)語(yǔ)言
<body>
  <button class="reg-btn">注冊(cè)用戶</button>
  <script>
    /**
     * 目標(biāo):使用xhr進(jìn)行數(shù)據(jù)提交-完成注冊(cè)功能
    */
    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)
      })
      //設(shè)置請(qǐng)求頭
      xhr.setRequestHeader('Content-Type','application/json')
      //準(zhǔn)備提交的數(shù)據(jù)
      const userObj={
        username:'zxc123456',
        password:'7654321'
      }
      const userStr=JSON.stringify(userObj)
      //設(shè)置請(qǐng)求體,發(fā)起請(qǐng)求
      xhr.send(userStr)
    })
  </script>
</body>

</html>

Promise

了解Promise

定義:AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,開(kāi)發(fā)語(yǔ)言文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-602618.html

好處:
1. 邏輯更清晰
2. 了解 axios 函數(shù)內(nèi)部運(yùn)作機(jī)制
3. 能解決回調(diào)函數(shù)地獄問(wèn)題
語(yǔ)法:
AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,開(kāi)發(fā)語(yǔ)言AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,開(kāi)發(fā)語(yǔ)言
<body>
  <script>
    /**
     * 目標(biāo):使用Promise管理異步任務(wù)
    */
    // 1. 創(chuàng)建Promise對(duì)象
    const p = new Promise((resolve, reject) => {
      // 2. 執(zhí)行異步代碼
      setTimeout(() => {
        // resolve('模擬AJAX請(qǐng)求-成功結(jié)果')
        reject(new Error('模擬AJAX請(qǐng)求-失敗結(jié)果'))
      }, 2000)
    })

    // 3. 獲取結(jié)果
    p.then(result => {
      console.log(result)
    }).catch(error => {
      console.log(error)
    })
  </script>
</body>

Promise - 三種狀態(tài)

作用:了解Promise對(duì)象如何 關(guān)聯(lián) 處理函數(shù) ,以及代碼執(zhí)行順序
概念:一個(gè)Promise對(duì)象,必然處于以下幾種狀態(tài)之一
????????待定(pending) :初始狀態(tài),既沒(méi)有被兌現(xiàn),也沒(méi)有被拒絕
????????已兌現(xiàn)(fulfilled) :意味著,操作成功完成
????????已拒絕(rejected) :意味著,操作失敗
AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,開(kāi)發(fā)語(yǔ)言
注意:Promise對(duì)象一旦被 兌現(xiàn)/拒絕
就是 已敲定 了,狀態(tài)無(wú)法再被改變

封裝_簡(jiǎn)易axios_獲取省份列表 ?

需求:基于 Promise + XHR 封裝 myAxios 函數(shù),獲取省份列表展示
步驟:
1. 定義 myAxios 函數(shù),接收 配置對(duì)象 ,返回 Promise 對(duì)象
2. 發(fā)起 XHR 請(qǐng)求,默認(rèn)請(qǐng)求方法 為 GET
3. 調(diào)用成功/失敗的處理程序
4. 使用 myAxios 函數(shù),獲取 省份列表展示 AJAX-day02-AJAX原理,# 前端AJAX,ajax,前端,javascript,ecmascript,開(kāi)發(fā)語(yǔ)言
<body>
  <p class="my-p"></p>
  <script>
    
    /**
     * 目標(biāo):封裝_簡(jiǎn)易axios函數(shù)_獲取省份列表
     *  1. 定義myAxios函數(shù),接收配置對(duì)象,返回Promise對(duì)象
     *  2. 發(fā)起XHR請(qǐng)求,默認(rèn)請(qǐng)求方法為GET
     *  3. 調(diào)用成功/失敗的處理程序
     *  4. 使用myAxios函數(shù),獲取省份列表展示
    */
    //1.定義myAxios函數(shù),接收配置對(duì)象,返回Promise對(duì)象
    function myAxios(config){
      return new Promise((resolve,reject)=>{
        //2.發(fā)起xhr請(qǐng)求,默認(rèn)請(qǐng)求方法為GET
        const xhr = new XMLHttpRequest()
        xhr.open(config.method || 'GET',config.url)
        xhr.addEventListener('loadend',()=>{
          //3.調(diào)用成功/失敗的處理程序
          if(xhr.status>=200&&xhr.status<300){
            resolve(JSON.parse(xhr.response))
          }
          else{
            reject(new Error(xhr.response))
          }
        })
        xhr.send()
      })
    }
    //4.使用myAxios函數(shù),獲取省份列表展示
    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>

到了這里,關(guān)于AJAX-day02-AJAX原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

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

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

    目錄 Bootstrap之Modal: 顯示和隱藏方法 通過(guò)自定義屬性: 使用JS來(lái)控制彈框: Bootstrap之Toast: 接口文檔一些用法: 刪除圖書(shū): 圖片上傳: 圖片上傳步驟: 修改頭像: AJAX原理: 使用XHLHTTPREQUEST四步走: XHLHTTPREQUEST--查詢參數(shù): XHLHTTPREQUEST--請(qǐng)求參數(shù): Promise: Promise三種狀態(tài)

    2024年02月07日
    瀏覽(18)
  • 前端架構(gòu)師之01_JavaScript_Ajax

    1.1 Web服務(wù)器 Web服務(wù)器又稱為網(wǎng)站服務(wù)器,主要用于提供網(wǎng)上信息瀏覽服務(wù)。 常見(jiàn)的Web服務(wù)器軟件有Apache HTTP Server(簡(jiǎn)稱Apache)、Nginx等。 瀏覽器與服務(wù)器交互 在Web服務(wù)器中,請(qǐng)求資源又分為靜態(tài)資源和動(dòng)態(tài)資源。 靜態(tài)資源的特點(diǎn):只要服務(wù)器沒(méi)有修改這些文件,客戶端每

    2024年02月07日
    瀏覽(44)
  • 前端學(xué)習(xí)記錄~2023.8.10~JavaScript重難點(diǎn)實(shí)例精講~第6章 Ajax

    前端學(xué)習(xí)記錄~2023.8.10~JavaScript重難點(diǎn)實(shí)例精講~第6章 Ajax

    本章是第六章Ajax相關(guān)的內(nèi)容。 Ajax是一種流行的前后端數(shù)據(jù)交互的方式,通過(guò)異步請(qǐng)求就可以在不需要刷新頁(yè)面的情況下,達(dá)到局部刷新的效果。 Ajax并非是一種全新的技術(shù),而是由以下技術(shù)組合而成: 使用CSS和XHTML做頁(yè)面呈現(xiàn) 使用DOM進(jìn)行交互和動(dòng)態(tài)顯示 使用XMLHttpRequest對(duì)象

    2024年02月11日
    瀏覽(57)
  • 前端框架前置學(xué)習(xí)(3) AJAX原理 XMLHttpRequest,Promise,簡(jiǎn)易axios函數(shù)封裝

    前端框架前置學(xué)習(xí)(3) AJAX原理 XMLHttpRequest,Promise,簡(jiǎn)易axios函數(shù)封裝

    1.獲取圖片文件對(duì)象 ?// 文件選擇元素-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日
    瀏覽(99)
  • javascript常見(jiàn)100問(wèn)|前端基礎(chǔ)知識(shí)|問(wèn)ajax-fetch-axios-區(qū)別請(qǐng)用 XMLHttpRequestfetch 實(shí)現(xiàn) ajax節(jié)流和防抖px em rem vw/箭頭函數(shù)的缺點(diǎn)

    HTML CSS JS HTTP 等基礎(chǔ)知識(shí)是前端面試的第一步,基礎(chǔ)知識(shí)不過(guò)關(guān)將直接被拒。本章將通過(guò)多個(gè)面試題,講解前端??嫉幕A(chǔ)知識(shí)面試題,同時(shí)復(fù)習(xí)一些重要的知識(shí)點(diǎn)。 扎實(shí)的前端基礎(chǔ)知識(shí),是作為前端工程師的根本。基礎(chǔ)知識(shí)能保證最基本的使用,即招聘進(jìn)來(lái)能干活,能產(chǎn)出

    2024年04月27日
    瀏覽(34)
  • 【b站咸蝦米】jQuery的ajax異步操作 web前端后端分離技術(shù)的原理

    課程地址:【jQuery的ajax異步操作 web前端后端分離技術(shù)的原理】 https://www.bilibili.com/video/BV1u5411M7ny/?share_source=copy_webvd_source=b1cb921b73fe3808550eaf2224d1c155 通過(guò)案例學(xué)習(xí)ajax異步操作。 介紹 php,前后端不分離的技術(shù)。 ajax,實(shí)現(xiàn)前后端分離技術(shù)。 在之前,要做動(dòng)態(tài)網(wǎng)站,要懂php,ja

    2024年04月15日
    瀏覽(99)
  • 跟著pink老師前端入門(mén)教程(JavaScript)-day02

    跟著pink老師前端入門(mén)教程(JavaScript)-day02

    1、什么是變量 白話:變量就是一個(gè)裝東西的盒子 通俗:變量是用于存儲(chǔ)數(shù)據(jù)的‘ 容器 ’,通過(guò) 變量名 獲取數(shù)據(jù),甚至數(shù)據(jù)可以修改 注意: 變量不是數(shù)據(jù)本身,它們僅僅是一個(gè)用于存儲(chǔ)數(shù)值的容器??梢岳斫鉃槭且粋€(gè)個(gè)用來(lái)裝東西的紙箱子。 2、變量在內(nèi)存中的存儲(chǔ) 本質(zhì)

    2024年02月20日
    瀏覽(89)
  • 什么是AJAX?如何使用原生JavaScript進(jìn)行AJAX請(qǐng)求?

    什么是AJAX?如何使用原生JavaScript進(jìn)行AJAX請(qǐng)求?

    前端入門(mén)之旅:探索Web開(kāi)發(fā)的奇妙世界 歡迎來(lái)到前端入門(mén)之旅!感興趣的可以訂閱本專(zhuān)欄哦!這個(gè)專(zhuān)欄是為那些對(duì)Web開(kāi)發(fā)感興趣、剛剛踏入前端領(lǐng)域的朋友們量身打造的。無(wú)論你是完全的新手還是有一些基礎(chǔ)的開(kāi)發(fā)者,這里都將為你提供一個(gè)系統(tǒng)而又親切的學(xué)習(xí)平臺(tái)。在這個(gè)

    2024年02月07日
    瀏覽(29)
  • 什么是AJAX?如何使用原生JavaScript搭建AJAX請(qǐng)求?

    什么是AJAX?如何使用原生JavaScript搭建AJAX請(qǐng)求?

    前端入門(mén)之旅:探索Web開(kāi)發(fā)的奇妙世界 歡迎來(lái)到前端入門(mén)之旅!感興趣的可以訂閱本專(zhuān)欄哦!這個(gè)專(zhuān)欄是為那些對(duì)Web開(kāi)發(fā)感興趣、剛剛踏入前端領(lǐng)域的朋友們量身打造的。無(wú)論你是完全的新手還是有一些基礎(chǔ)的開(kāi)發(fā)者,這里都將為你提供一個(gè)系統(tǒng)而又親切的學(xué)習(xí)平臺(tái)。在這個(gè)

    2024年02月11日
    瀏覽(29)
  • javascript的ajax

    JavaScript的AJAX(Asynchronous JavaScript and XML)處理是一種用于在后臺(tái)與服務(wù)器進(jìn)行異步數(shù)據(jù)交互的技術(shù)。它允許你在不刷新整個(gè)頁(yè)面的情況下,通過(guò)JavaScript發(fā)送HTTP請(qǐng)求,并異步獲取服務(wù)器返回的數(shù)據(jù)。 AJAX的實(shí)現(xiàn)通常涉及以下幾個(gè)核心組件和步驟: 創(chuàng)建XMLHttpRequest對(duì)象(XHR):

    2024年02月12日
    瀏覽(17)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包