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

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

關于Ajax的封裝詳解

瀏覽:51日期: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久久,三上悠亚国产精品一区二区三区
国产在线一区不卡| 日韩一区网站| 国内自拍视频一区二区三区| 7777精品| 欧美午夜网站| 国产精品嫩模av在线| 日韩高清不卡一区二区| 亚洲欧洲日韩| 亚洲v天堂v手机在线| 亚洲精品麻豆| 青青国产精品| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产美女高潮在线| 成人日韩av| 午夜精品成人av| 不卡视频在线| 蜜桃免费网站一区二区三区| 免费看黄色91| 国产无遮挡裸体免费久久| 免费视频一区二区三区在线观看| 国产成人精选| 国产精品精品国产一区二区| 婷婷激情一区| 合欧美一区二区三区| 人人精品人人爱| 日韩黄色在线观看| 麻豆中文一区二区| 日韩免费小视频| 久久成人精品| 国产精品羞羞答答在线观看| 国产精品yjizz视频网| 久久一区二区三区电影| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲日本三级| 久久精品一区二区三区中文字幕| 久久久噜噜噜| 亚洲一区二区三区久久久| 亚洲精品一级| 国产一区二区色噜噜| 国产专区一区| 91国内精品| 色吊丝一区二区| 综合激情视频| 日本一二区不卡| 视频一区二区中文字幕| 美女国产一区二区三区| 婷婷六月综合| 日韩欧美美女在线观看| 国产中文欧美日韩在线 | 九一国产精品| 青草国产精品| 欧美亚洲国产激情| 久久国产婷婷国产香蕉| 色婷婷精品视频| 亚洲另类黄色| 亚洲黄色免费av| 婷婷成人av| 日韩在线观看| 日本欧美在线| 在线日韩中文| 欧美黑人巨大videos精品| 亚洲高清二区| 国产精品一国产精品k频道56| 99精品视频在线| 日韩在线观看一区二区三区| 精品一区二区三区中文字幕在线| 香蕉久久国产| 另类专区亚洲| 偷拍亚洲精品| 亚洲五月婷婷| 精品中文字幕一区二区三区| 日韩中文字幕1| bbw在线视频| 日韩不卡在线观看日韩不卡视频| 久久激情网站| 精品一区二区三区四区五区| 婷婷精品久久久久久久久久不卡| 久久三级福利| 久久久国产精品入口麻豆| 亚洲综合另类| 97国产精品| 国产亚洲精品美女久久| 国产精品日本| 欧美日韩在线观看视频小说| 久久精品日韩欧美| 欧美日韩亚洲国产精品| 另类av一区二区| 丝袜av一区| 麻豆精品国产91久久久久久| 香蕉久久一区| 免费欧美日韩| 亚洲天堂成人| 一本大道色婷婷在线| 国产精品久久久久久久免费软件| 国产毛片一区| 久久精品免费一区二区三区| 高清久久精品| 欧美极品中文字幕| 国产色99精品9i| 日韩综合小视频| 男人操女人的视频在线观看欧美| 999久久久国产精品| 成人精品动漫一区二区三区| 国产探花一区| 青草国产精品久久久久久| 免费人成在线不卡| 999精品在线| 91欧美在线| 激情综合五月| 国产精品主播在线观看| 日韩不卡在线观看日韩不卡视频| 一级成人国产| 亚洲精品一二| 日韩有吗在线观看| 亚洲精品日韩久久| 免费在线看一区| 久久国产精品久久w女人spa| 在线综合欧美| 亚洲欧美日韩专区| 丝袜亚洲精品中文字幕一区| 国产精品毛片一区二区三区| 国产视频一区三区| 亚洲永久字幕| 视频一区视频二区中文| 在线亚洲一区| 久久亚洲不卡| 亚洲人成毛片在线播放女女| 日韩三级精品| 88久久精品| 国产精品久久久久久模特 | 一区二区精品| 亚洲精品福利| 国产日产精品_国产精品毛片 | 久久在线电影| 亚洲欧美伊人| 亚洲欧美日韩国产一区二区| 免费黄网站欧美| 日韩高清欧美激情| 国产极品一区| 国产精品福利在线观看播放| 综合日韩av| 午夜av成人| 国产亚洲一级| 综合国产精品| 国产精品欧美日韩一区| 国产一区二区三区精品在线观看 | 精品入口麻豆88视频| 成人国产精选| 91久久国产| 日韩和欧美一区二区三区| 国产日本精品| 波多野结衣久久精品| 欧美~级网站不卡| 蜜桃视频在线观看一区| 国产精品丝袜在线播放| 国产欧洲在线| 午夜在线一区二区| 午夜久久av| 精品一区二区三区亚洲| 91精品亚洲| 日产欧产美韩系列久久99| 开心激情综合| 亚洲婷婷在线| 日韩高清国产一区在线| 国产成人精品福利| 国产精品99一区二区| 日韩一区二区三区高清在线观看| 国产精品美女在线观看直播| 日韩欧美精品一区| 一二三区精品| 水蜜桃久久夜色精品一区| 欧洲激情综合| 日韩高清不卡一区| 成人久久久久| 日韩av黄色在线| 亚洲a在线视频| 日本麻豆一区二区三区视频| av资源中文在线天堂| 男女男精品网站| 不卡专区在线| 中文字幕成人| 欧美精品高清| 91成人在线| 欧美精品一区二区三区精品| 欧美日本二区| 欧美日韩视频| 美腿丝袜在线亚洲一区| 亚洲高清成人| 国产精品啊v在线| 日韩一级欧洲| 97精品国产一区二区三区| 亚洲欧美一级| 美女福利一区二区三区| 日本成人在线一区| 国产一区清纯| 精品国产欧美日韩一区二区三区| 日韩制服丝袜av| 日韩在线欧美| 国产精品三p一区二区| 99精品99|