<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        node.js中axios使用心得總結

        來源:懂視網 責編:小采 時間:2020-11-27 22:24:40
        文檔

        node.js中axios使用心得總結

        node.js中axios使用心得總結:Axios是一個基于Promise的 HTTP 庫,可以用在瀏覽器和node.js 中,因為尤大大的推薦,axios也變得越來越流行。最近項目中使用axios也遇到了一些問題,就借此機會總結一下,如有錯誤,還請不吝指正。 功能 瀏覽器端發起XMLHttpRequests請求
        推薦度:
        導讀node.js中axios使用心得總結:Axios是一個基于Promise的 HTTP 庫,可以用在瀏覽器和node.js 中,因為尤大大的推薦,axios也變得越來越流行。最近項目中使用axios也遇到了一些問題,就借此機會總結一下,如有錯誤,還請不吝指正。 功能 瀏覽器端發起XMLHttpRequests請求

        Axios是一個基于Promise的 HTTP 庫,可以用在瀏覽器和node.js 中,因為尤大大的推薦,axios也變得越來越流行。最近項目中使用axios也遇到了一些問題,就借此機會總結一下,如有錯誤,還請不吝指正。

        功能

        瀏覽器端發起XMLHttpRequests請求

        node層發起http請求

        支持Promise API

        攔截請求和響應

        轉換請求和響應數據

        取消請求

        自動轉換JSON數據

        客戶端支持防御XSRF(跨站請求偽造)

        兼容

        使用

        npm
        npm install axios

        bower
        bower install axios

        cdn

        <script src="https://unpkg.com/axios/dist/axios.min.js"></script>

        發起請求

        GET

        axios.get('/user?ID=123')
         .then( res => {
         console.info(res)
         }).catch( e => {
         if(e.response){
         //請求已發出,服務器返回狀態碼不是2xx。
         console.info(e.response.data)
         console.info(e.response.status)
         console.info(e.response.headers)
         }else if(e.request){
         // 請求已發出,但沒有收到響應
         // e.request 在瀏覽器里是一個XMLHttpRequest實例,
         // 在node中是一個http.ClientRequest實例
         console.info(e.request)
         }else{
         //發送請求時異常,捕捉到錯誤
         console.info('error',e.message)
         }
         console.info(e.config)
         })
        // 等同以下寫法
        axios({
         url: '/user',
         method: 'GET',
         params: {
         ID: 123
         }
        }).then( res => {
         console.info(res)
        }).catch( e=> {
         console.info(e)
        })

        POST

        axios.post('/user', {
         firstName: 'Mike',
         lastName: 'Allen'
        }).then( res => {
         console.info(res)
        }).catch( e => {
         console.info(e)
        })
        // 等同以下寫法
        axios({
         url: '/user',
         method: 'POST',
         data: {
         firstName: 'Mike',
         lastName: 'Allen'
         }
        }).then( res => {
         console.info(res)
        }).catch( e => {
         console.info(e)
        })

        注意事項

        在使用GET方法傳遞參數時使用的是params,并且官方文檔中介紹為:params are the URL parameters to be sent with the request. Must be a plain object or a URLSearchParams object。譯為:params作為URL鏈接中的參數發送請求,且其必須是一個plain object或者是URLSearchParams object。plain object(純對象)是指用JSON形式定義的普通對象或者new Object()創建的簡單對象;而URLSearchParams object指的是一個可以由URLSearchParams接口定義的一些實用方法來處理 URL 的查詢字符串的對象,也就是說params傳參是以/user?ID=1&name=mike&sex=male形式傳遞的。

        而在使用POST時對應的傳參使用的是data,data是作為請求體發送的,同樣使用這種形式的還有PUT,PATCH等請求方式。有一點需要注意的是,axios中POST的默認請求體類型為Content-Type:application/json(JSON規范流行),這也是最常見的請求體類型,也就是說使用的是序列化后的json格式字符串來傳遞參數,如:{ "name" : "mike", "sex" : "male" };同時,后臺必須要以支持@RequestBody的形式接收參數,否則會出現前臺傳參正確,后臺接收不到的情況。

        如果想要設置類型為Content-Type:application/x-www-form-urlencoded(瀏覽器原生支持),axios提供了兩種方式,如下:

        瀏覽器端

        const params = new URLSearchParams();
        params.append('param1', 'value1');
        params.append('param2', 'value2');
        axios.post('/user', params);

        不過,并不是所有瀏覽器都支持URLSearchParams,兼容性查詢caniuse.com,但是這里有一個Polyfill (polyfill:用于實現瀏覽器并不支持的原生API的代碼,可以模糊理解為補丁,同時要確保polyfill在全局環境中)。

        或者,你也可以用qs這個庫來格式化數據。默認情況下在安裝完axios后就可以使用qs庫。

        const qs = require('qs');
        axios.post('/user', qs.stringify({'name':'mike'}));

        node層

        在node環境中可以使用querystring。同樣,也可以用qs來格式化數據。

        const querystring = require('querystring');
        axios.post('http://something.com/', querystring.stringify({'name':'mike'}));

        補充

        常見的請求體類型還有一種方式,即multipart/form-data(瀏覽器原生支持),也就是提交表單數據常用的一種格式。和x-www-form-urlencoded對比起來,后者則是數據被編碼成以 '&' 分隔的鍵-值對, 同時以 '=' 分隔鍵和值。非字母或數字的字符會被Percent-encoding(URL encoding),這也就是為什么這種類型不支持二進制數據的原因 (應使用 multipart/form-data 代替)。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        node.js中axios使用心得總結

        node.js中axios使用心得總結:Axios是一個基于Promise的 HTTP 庫,可以用在瀏覽器和node.js 中,因為尤大大的推薦,axios也變得越來越流行。最近項目中使用axios也遇到了一些問題,就借此機會總結一下,如有錯誤,還請不吝指正。 功能 瀏覽器端發起XMLHttpRequests請求
        推薦度:
        標簽: 總結 axios node.js中
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 成人免费a级毛片无码网站入口 | 亚洲av无码片vr一区二区三区| 国内少妇偷人精品视频免费| 亚洲小说区图片区另类春色| 最新69国产成人精品免费视频动漫| 亚洲av乱码一区二区三区香蕉 | 日本视频免费高清一本18| 亚洲精品无码专区在线在线播放| 成人一区二区免费视频| 国产亚洲一区二区三区在线| 免费视频一区二区| 亚洲第一区视频在线观看| 永久免费毛片在线播放 | 亚洲精品黄色视频在线观看免费资源 | 亚洲午夜免费视频| 精品免费久久久久久久| 亚洲色大18成人网站WWW在线播放| 麻豆成人精品国产免费| 四虎影视在线看免费观看| 久久精品国产亚洲夜色AV网站| 麻豆高清免费国产一区| 亚洲综合精品伊人久久| 免费一级毛片正在播放| 拍拍拍无挡视频免费观看1000| 亚洲综合免费视频| 国产精品久久免费视频| 精品亚洲永久免费精品| 亚洲mv国产精品mv日本mv| 日韩精品电影一区亚洲| 日韩免费人妻AV无码专区蜜桃 | 亚洲丝袜中文字幕| 无码国产亚洲日韩国精品视频一区二区三区| 一级片在线免费看| 亚洲国产精品久久网午夜| 免费一级毛片在线观看| 久久aa毛片免费播放嗯啊| 亚洲色大成网站www永久男同| 亚洲精品无码专区久久同性男| 亚洲精品视频免费看| 免费夜色污私人影院网站| 亚洲欧洲精品一区二区三区|