日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

關于Ajax的封裝詳解

瀏覽:47日期:2022-06-14 13:44:42
目錄Ajax的封裝一、最簡單的原生Ajax封裝二、使用promise函數封裝三、promise配合async和await使用四、使用axios工具庫直接發送AjaxAjax的封裝

一個免費的測試接口

https://api.apiopen.top/getJoke

一、最簡單的原生Ajax封裝先看下效果

具體代碼<body> <div class='box'><button id='btn'>來段數據</button><br> <textarea ></textarea> </div> <script>const btn = document.getElementById('btn');const txt = document.getElementById('text');btn.onclick = function(){ getAjax('get','https://api.apiopen.top/getJoke',function(res){let narr=[];for(let i=0;i<res.length;i++){ narr.push('\n'+(i+1)+'.'+res[i].text) console.log(res[i].text); text.innerHTML=narr;} });}function getAjax(method,url,callback){ const xhr = new XMLHttpRequest(); xhr.open(method,url); xhr.send(); xhr.onreadystatechange = function(){if(xhr.readyState === 4){ if(xhr.status>=200 && xhr.status<300){const res = JSON.parse(xhr.response);callback(res.result); }} }} </script>二、使用promise函數封裝

Promise是ES6引入的異步編程的新解決方案,語法上Promise是一個構造函數,用來封裝異步操作并可以獲取其成功或者失敗的回調結果。

通過promise實例化的對象可以接受一個參數,參數類型為函數,該函數的兩個參數是resolve和reject,在請求到數據后可以通過resolve、resolve函數來改變Promise對象的狀態resolve表示成功,resolve表示失敗成功或者失敗都可以調用Promise對象的then方法then接收兩個參數,兩個參數都是函數類型成功的形參為value,失敗的形參為reasonvalue就是resolve方法里的返回結果<script> const btn = document.getElementById('btn'); btn.onclick = function(){grtAjax('get','https://api.apiopen.top/getJoke',function(res){ console.log(res);}); } function grtAjax(method,url,callback){const p = new Promise((resolve,reject)=>{ const xhr = new XMLHttpRequest(); xhr.open(method,url); xhr.send(); xhr.onreadystatechange = function(){if(xhr.readyState == 4){ if(xhr.status >= 200 && xhr.status < 300){resolve(xhr.response); }else{reject(xhr.status); }} }});p.then(function(value){ const res = JSON.parse(value); callback(res.result)},function(reason){console.error(reason);}) }</script>

三、promise配合async和await使用

async

async和await兩種語法結合可以讓異步代碼像同步代碼一樣async函數的返回值為promise對象該promise對象的結果是由async函數執行的返回值決定的只要返回值的類型不是一個promise類型的對象則async函數的返回結果就是一個成功的promise對象返回值的類型不是一個promise類型的對象則跟promise對象的狀態有關revolve或者reject或者拋出異常

await

await右側的表達式一般為promise對象,但也可以是其他的值如果是promise對象,await返回的是promise成功的值如果是其他的值,直接將此值作為await的返回值await必須寫在async函數中,但是async函數中可以沒有await如果await的promise狀態是失敗的,就會拋出異常,需要通過try…catch捕獲處理

<body> <button>請求數據</button> <script>const btn = document.querySelector('button');function sendAjax(method,url){ return new Promise((resolve,reject)=>{ const xhr = new XMLHttpRequest();xhr.responseType = 'json';xhr.open(method,url);xhr.send();xhr.onreadystatechange = function(){ if(xhr.readyState === 4){if(xhr.status >=200 && xhr.status<300){ resolve(xhr.response);}else{ reject(xhr.status);} }} })}btn.addEventListener('click',async function(){ let result = await sendAjax('get','https://api.apiopen.top/getJoke'); console.log(result);}) </script></body>四、使用axios工具庫直接發送Ajax

Axios 是一個基于 promise 網絡請求庫,作用于node.js 和瀏覽器中。 它是 isomorphic 的(即同一套代碼可以運行在瀏覽器和node.js中)。在服務端它使用原生 node.js http 模塊, 而在客戶端 (瀏覽端) 則使用 XMLHttpRequests。

這里使用了vue-cli搭建了一個vue項目并下載了 axios

post

get

<template><div><button @click='post'>直接發送POST</button><button @click='get'>直接發送GET</button> </div></template><script>export default { data(){ return{} }, methods:{ async get(){ const {data:res} = await this.$axios.get('https://api.apiopen.top/getJoke',{params:{id:1} }); console.log(res); }, post(){ this.$axios.post('https://api.apiopen.top/getJoke',{name:'yxj',gender:'男'}) .then((res)=>{console.log(res.data.result); }); } }}</script>

到此這篇關于關于Ajax的封裝詳解的文章就介紹到這了,更多相關Ajax的封裝內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Ajax
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩精品免费观看视欧美高清免费大片 | 日韩欧美另类一区二区| 国产无遮挡裸体免费久久| 综合欧美亚洲| 亚洲精品高潮| 久久激五月天综合精品| 国产精品免费大片| 老司机免费视频一区二区三区| 国产精品一线天粉嫩av| 鲁大师精品99久久久| 精品九九久久| 蜜臀久久精品| 日韩欧美二区| 1024精品一区二区三区| 午夜久久一区| 亚洲人亚洲人色久| 国产精品亚洲综合在线观看| 精品视频99| 亚洲www啪成人一区二区| 欧美日韩国产综合网| 蜜臀va亚洲va欧美va天堂| 久久精品超碰| 国产中文在线播放| 日韩午夜电影| 日本免费新一区视频| 麻豆国产精品视频| 欧美色图一区| 首页国产欧美久久| 国产欧美自拍一区| 日韩一区二区三区在线免费观看| 极品日韩av| 亚洲日本欧美| 国产一区不卡| 午夜在线一区| 美女久久99| 91精品成人| 国产美女久久| 久久九九精品| 亚洲日本免费电影| 精品久久网站| 丝袜国产日韩另类美女| 麻豆传媒一区二区三区| 久久国产电影| 久久av在线| 精品久久久亚洲| 在线视频日韩| 美女国产一区二区三区| 99在线精品免费视频九九视 | 午夜在线一区| 国产精品巨作av| 最新亚洲激情| 精品三级av| 一区二区国产在线| 日韩一区二区在线免费| 久久亚洲不卡| 在线手机中文字幕| 日韩精品中文字幕一区二区| 神马久久午夜| 青青草91久久久久久久久| 亚洲成人不卡| 日韩高清在线观看一区二区| 99久久久久国产精品| 国产欧美一级| 国产美女一区| 日韩国产一区二区三区| 日韩av不卡在线观看| 亚洲高清成人| 久久精品理论片| 中文一区一区三区免费在线观 | 亚洲免费专区| 日韩久久精品| 国产精品久久久久久av公交车| 伊人久久大香线蕉av超碰演员| 国产精品美女午夜爽爽| 亚洲一区二区毛片| 国产高潮在线| 国产欧美欧美| 美国三级日本三级久久99| 美女福利一区二区三区| 国产精品香蕉| 午夜电影一区| 亚洲欧美日韩国产一区二区| 日韩欧美看国产| 91福利精品在线观看| 在线亚洲成人| 99成人超碰| 狠狠久久伊人中文字幕| 日韩欧美在线精品| 欧美日韩国产一区二区三区不卡| 国产成人久久| 国产精品欧美一区二区三区不卡 | 亚洲一二三区视频| 久久久久欧美精品| 日韩成人免费| 国产伦精品一区二区三区千人斩 | 欧美成人aaa| 日本精品久久| 亚洲精品字幕| 久久午夜精品| 夜久久久久久| 狠狠爱成人网| 国产综合精品| 色婷婷久久久| 国产传媒av在线| 国产精品亚洲欧美一级在线| 亚洲精品系列| 亚洲一区二区小说| 久久不射中文字幕| 亚洲免费一区二区| 黄色亚洲在线| 欧美特黄一区| japanese国产精品| 成人av动漫在线观看| 国产99亚洲| 欧美性感美女一区二区| 999精品在线| 999久久久亚洲| 久久人人精品| 久久国产欧美| 成人啊v在线| 日韩精品欧美| 婷婷激情一区| 韩国精品主播一区二区在线观看| 国产精品蜜芽在线观看| 精品99久久| 久久99精品久久久久久园产越南| 国产九一精品| 精品国产乱码久久久| 精品精品久久| 欧美gv在线| 日本精品不卡| 91九色精品国产一区二区| 亚洲尤物在线| 日韩视频一二区| 日本视频中文字幕一区二区三区| 日韩精品一区二区三区中文字幕| 日韩二区在线观看| 国产精品久久久久久久久免费高清| 国产精品白丝久久av网站| 精品久久免费| 久久精品高清| 中文精品电影| 欧美日韩va| 精品中文字幕一区二区三区四区| 国产成人免费精品| 久久精品高清| 久久福利一区| 欧美日韩va| 精品久久美女| 色天使综合视频| 亚洲一区欧美激情| 日本va欧美va精品发布| 精品中文字幕一区二区三区 | 自拍日韩欧美| 日韩一区免费| 麻豆精品视频在线| 日韩欧美一区二区三区免费看| 免费欧美一区| 日本精品国产| 都市激情国产精品| 亚洲综合不卡| 国产精品久一| 日韩天堂在线| 性欧美长视频| 国产乱码精品一区二区三区四区 | a国产在线视频| 午夜在线视频一区二区区别 | 你懂的亚洲视频| 91精品韩国| 中文视频一区| 精品色999| 亚洲精品99| 国产精品一区二区av交换| 亚洲91精品| 日韩高清一区二区| 欧美香蕉视频| 亚洲+小说+欧美+激情+另类| 嫩呦国产一区二区三区av| 国产亚洲一区二区手机在线观看| 免费在线观看日韩欧美| 精品国产亚洲一区二区三区| 欧美美女一区| 国产日产精品_国产精品毛片 | 久久伊人亚洲| 99精品综合| 久久国产三级精品| 久久一区二区三区电影| 国产调教一区二区三区| 91精品91| 蜜桃久久久久| 久久午夜影视| 国产资源在线观看入口av| 亚洲三级精品| 韩国三级一区| 国产美女视频一区二区| 婷婷久久一区| 成人在线黄色| 欧美在线91| 一本一本久久| 国产成人精品福利|