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

9-AJAX-下-axios

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

一 axios是什么

上古瀏覽器頁(yè)面在向服務(wù)器請(qǐng)求數(shù)據(jù)時(shí),因?yàn)榉祷氐氖钦麄€(gè)頁(yè)面的數(shù)據(jù),頁(yè)面都會(huì)強(qiáng)制刷新一下,這對(duì)于用戶來(lái)講并不是很友好。并且我們只是需要修改頁(yè)面的部分?jǐn)?shù)據(jù),但是從服務(wù)器端發(fā)送的卻是整個(gè)頁(yè)面的數(shù)據(jù),十分消耗網(wǎng)絡(luò)資源。而我們只是需要修改頁(yè)面的部分?jǐn)?shù)據(jù),也希望不刷新頁(yè)面,因此異步網(wǎng)絡(luò)請(qǐng)求就應(yīng)運(yùn)而生。

Ajax(Asynchronous JavaScript and XML):異步網(wǎng)絡(luò)請(qǐng)求。Ajax能夠讓頁(yè)面無(wú)刷新的請(qǐng)求數(shù)據(jù)。

實(shí)現(xiàn)ajax的方式有多種,如jQuery封裝的ajax,原生的XMLHttpRequest,以及axios。但各種方式都有利弊

  1. 原生的XMLHttpRequest的配置和調(diào)用方式都很繁瑣,實(shí)現(xiàn)異步請(qǐng)求十分麻煩
  2. jQuery的ajax相對(duì)于原生的ajax是非常好用的,但是沒(méi)有必要因?yàn)橐胊jax異步網(wǎng)絡(luò)請(qǐng)求而引用jQuery框架

Axios,可以理解為ajax i/o system,這不是一種新技術(shù),本質(zhì)上還是對(duì)原生XMLHttpRequest的封裝,可用于瀏覽器和nodejs的HTTP客戶端,只不過(guò)它是基于Promise的,符合最新的ES規(guī)范。

二 Axios請(qǐng)求方式

1、axios可以請(qǐng)求的方法:

get:獲取數(shù)據(jù),請(qǐng)求指定的信息,返回實(shí)體對(duì)象
post:向指定資源提交數(shù)據(jù)(例如表單提交或文件上傳)
put:更新數(shù)據(jù),從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容
patch:更新數(shù)據(jù),是對(duì)put方法的補(bǔ)充,用來(lái)對(duì)已知資源進(jìn)行局部更新
delete:請(qǐng)求服務(wù)器刪除指定的數(shù)據(jù)
總結(jié):上述方法中均對(duì)應(yīng)兩種寫(xiě)法:(1)使用別名:形如axios.get();(2)不使用別名形如axios();

2、get請(qǐng)求

示例代碼
此時(shí)表示,參數(shù)為id=12,最終的請(qǐng)求路徑Request URL: http://localhost:8080/data.json?id=12

<script>
    import axios from 'axios'
    export default {
        name: 'get請(qǐng)求',
        components: {},
        created() {
            //寫(xiě)法一
            axios.get('接口地址', {
                params: {
                    id: 12,//請(qǐng)求參數(shù)
                },
            }).then(
                (res) => {
                    //執(zhí)行成功后代碼處理
                }
            )
            //寫(xiě)法二
            axios({
                method: 'get',//請(qǐng)求方法
                params: {
                    id: 12,//請(qǐng)求參數(shù)
                },
                url: '后臺(tái)接口地址',
            }).then(res => {
                //執(zhí)行成功后代碼處理
            })
        }
    }
</script>


3、post請(qǐng)求

post請(qǐng)求一般分為兩種類型

  1. form-data(常用于表單提交(圖片上傳、文件上傳))

  2. application/json 一般是用于 ajax 異步請(qǐng)求

示例代碼

form-data請(qǐng)求方式代碼如下
注意:請(qǐng)求地址Request URL: http://localhost:8080/data.json,
請(qǐng)求頭中Content-Type: multipart/form-data; boundary=----WebKitFormBoundarydgohzXGsZdFwS16Y
參數(shù)形式:id:12

<script>
    import axios from 'axios'
    export default {
        name: 'get請(qǐng)求',
        components: {},
        created() {
            //寫(xiě)法一
            let data = {
                id:12
            }
            let formData = new formData()
            for(let key in data){
                fromData.append(key,data[key])
            }
            axios.post('接口地址', fromData}).then(
                (res) => {
                    //執(zhí)行成功后代碼處理
                }
            )
            //寫(xiě)法二
            axios({
                method: 'post',//請(qǐng)求方法
                data: fromData,
                url: '后臺(tái)接口地址',
            }).then(res => {
                //執(zhí)行成功后代碼處理
            })
        }
    }
</script>

applicition/json請(qǐng)求方式代碼如下
注意:請(qǐng)求地址Request URL: http://localhost:8080/data.json,
請(qǐng)求頭中Content-Type: application/json;charset=UTF-8
參數(shù)形式:{id:12}

<script>
    import axios from 'axios'
    export default {
        name: 'get請(qǐng)求',
        components: {},
        created() {
            //寫(xiě)法一
            let data={
                id:12
            }
            axios.post('接口地址', data}).then(
                (res) => {
                    //執(zhí)行成功后代碼處理
                }
            )
            //寫(xiě)法二
            axios({
                method: 'post',//請(qǐng)求方法
                data: data,
                url: '后臺(tái)接口地址',
            }).then(res => {
                //執(zhí)行成功后代碼處理
            })
        }
    }
</script>

4、put和patch請(qǐng)求

示例代碼
put請(qǐng)求

<script>
    import axios from 'axios'
    export default {
        name: 'get請(qǐng)求',
        components: {},
        created() {
            //寫(xiě)法一
            let data = {
                id:12
            }
            axios.put('接口地址', data}).then(
                (res) => {
                    //執(zhí)行成功后代碼處理
                }
            )
            //寫(xiě)法二
            axios({
                method: 'put',//請(qǐng)求方法
                data: data,
                url: '后臺(tái)接口地址',
            }).then(res => {
                //執(zhí)行成功后代碼處理
            })
        }
    }
</script>


patch請(qǐng)求

<script>
    import axios from 'axios'
    export default {
        name: 'get請(qǐng)求',
        components: {},
        created() {
            //寫(xiě)法一
            let data = {
                id:12
            }
            axios.patch('接口地址', data}).then(
                (res) => {
                    //執(zhí)行成功后代碼處理
                }
            )
            //寫(xiě)法二
            axios({
                method: 'patch',//請(qǐng)求方法
                data: data,
                url: '后臺(tái)接口地址',
            }).then(res => {
                //執(zhí)行成功后代碼處理
            })
        }
    }
</script>


5、delete請(qǐng)求

示例代碼
參數(shù)以明文形式提交=>params
注意:params方式會(huì)將請(qǐng)求參數(shù)拼接在URL上面,Request URL: http://localhost:8080/data.json?id=12
參數(shù)形式:id:12
Content-Type: text/html; charset=utf-8

axios
  .delete("/data.json", {
    params: {
      id: 12
    }
  })
  .then(res => {
    console.log(res, "delete");
  });
  
let params = {
  id: 12
};
axios({
  method:'delete',
  url:'/data.json',
  params:params
}).then(res=>{
  console.log(res)
})


參數(shù)以封裝對(duì)象的形式提交=>data
data方式不會(huì)講參數(shù)拼接,是直接放置在請(qǐng)求體中的,Request URL:http://localhost:8080/data.json
參數(shù)形式:{id:12}
Content-Type: application/json;charset=UTF-8

//方法二
axios
  .delete("/data.json", {
    data: {
      id: 12
    }
  })
  .then(res => {
    console.log(res, "delete");
  });
  
let data = {
  id: 12
};
axios({
  method:'delete',
  url:'/data.json',
  data:data
}).then(res=>{
  console.log(res)
})


6、并發(fā)請(qǐng)求

并發(fā)請(qǐng)求,就是同時(shí)進(jìn)行多個(gè)請(qǐng)求,并統(tǒng)一處理返回值。

在例子中,我們使用axios.all,對(duì)data.json/city.json同時(shí)進(jìn)行請(qǐng)求,使用axios.spread,對(duì)返回的結(jié)果分別進(jìn)行處理。代碼如下:
示例代碼

// 并發(fā)請(qǐng)求
axios.all([axios.get("/data.json"), axios.get("/city.json")]).then(
  axios.spread((dataRes, cityRes) => {
    console.log(dataRes, cityRes);
  })
);


三 Axios實(shí)例

1、創(chuàng)建axios實(shí)例

示例代碼

let instance = this.$axios.create({
				baseURL: 'http://localhost:9090',
				timeout: 2000
			})
			
instance.get('/goods.json').then(res=>{
	console.log(res.data);
})

可以同時(shí)創(chuàng)建多個(gè)axios實(shí)例。
axios實(shí)例常用配置:

  • baseURL 請(qǐng)求的域名,基本地址,類型:String
  • timeout 請(qǐng)求超時(shí)時(shí)長(zhǎng),單位ms,類型:Number
  • url 請(qǐng)求路徑,類型:String
  • method 請(qǐng)求方法,類型:String
  • headers 設(shè)置請(qǐng)求頭,類型:Object
  • params 請(qǐng)求參數(shù),將參數(shù)拼接在URL上,類型:Object
  • data 請(qǐng)求參數(shù),將參數(shù)放到請(qǐng)求體中,類型:Object

2、axios全局配置

示例代碼

//配置全局的超時(shí)時(shí)長(zhǎng)
this.$axios.defaults.timeout = 2000;
//配置全局的基本URL
this.$axios.defaults.baseURL = 'http://localhost:8080';

3、axios實(shí)例配置

示例代碼

let instance = this.$axios.create();
instance.defaults.timeout = 3000;

4、axios請(qǐng)求配置

示例代碼

this.$axios.get('/goods.json',{
				timeout: 3000
			}).then()

以上配置的優(yōu)先級(jí)為:請(qǐng)求配置 > 實(shí)例配置 > 全局配置

四、攔截器

攔截器:在請(qǐng)求或響應(yīng)被處理前攔截它們

1、請(qǐng)求攔截器

示例代碼

    //   請(qǐng)求攔截器
    axios.interceptors.request.use(config => {
      // 在發(fā)送請(qǐng)求前做些什么
      return config;
    }, err=>{
        // 在請(qǐng)求錯(cuò)誤的時(shí)候的邏輯處理
        return Promise.reject(err)
    });

2、響應(yīng)攔截器

示例代碼

    // 響應(yīng)攔截器
    axios.interceptors.response.use(res => {
      // 在請(qǐng)求成功后的數(shù)據(jù)處理
      return res;
    }, err=>{
        // 在響應(yīng)錯(cuò)誤的時(shí)候的邏輯處理
        return Promise.reject(err)
    });

3、取消攔截

示例代碼文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-726779.html

	let inter = axios.interceptors.request.use(config=>{
        config.header={
            auth:true
        }
        return config
    })
    axios.interceptors.request.eject(inter)

到了這里,關(guān)于9-AJAX-下-axios的文章就介紹完了。如果您還想了解更多內(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)文章

  • 前端終止請(qǐng)求的三種方式(ajax、axios)

    前端終止請(qǐng)求的三種方式(ajax、axios)

    一、原生ajax終止請(qǐng)求 1、abort() ? XMLHttpRequest.abort() 方法用于終止 XMLHttpRequest 對(duì)象的請(qǐng)求,該方法沒(méi)有參數(shù),也沒(méi)有返回值。當(dāng)調(diào)用該方法時(shí),如果對(duì)應(yīng) XMLHttpRequest 對(duì)象的請(qǐng)求已經(jīng)被發(fā)送并且正在處理中,則會(huì)中止該請(qǐng)求;如果請(qǐng)求已經(jīng)完成(即已經(jīng)接收到完整的響應(yīng)),則

    2024年02月09日
    瀏覽(29)
  • 前端請(qǐng)求數(shù)據(jù)方法 —— Ajax、Fetch、Axios、Get、Post

    Ajax :( “Asynchronous JavaScript and XML”(異步JavaScript和XML)的縮寫(xiě))是一組Web開(kāi)發(fā)技術(shù),Ajax不是一種技術(shù),而是一個(gè)編程概念。AJAX 這個(gè)詞就成為 JavaScript 腳本發(fā)起 HTTP 通信的代名詞,也就是說(shuō),只要用腳本發(fā)起通信,就可以叫做 AJAX 通信。 技術(shù)實(shí)現(xiàn) 用于演示的HTML(或 XHTML)和

    2024年01月22日
    瀏覽(28)
  • 【學(xué)一點(diǎn)兒前端】ajax、axios和fetch的概念、區(qū)別和易混淆點(diǎn)

    ajax是js異步技術(shù)的術(shù)語(yǔ),早期相關(guān)的api是xhr,它是一個(gè)術(shù)語(yǔ)。 fetch是es6新增的用于網(wǎng)絡(luò)請(qǐng)求標(biāo)準(zhǔn)api,它是一個(gè)api。 axios是用于網(wǎng)絡(luò)請(qǐng)求的第三方庫(kù),它是一個(gè)庫(kù)。 它的全稱是:Asynchronous JavaScript And XML,翻譯過(guò)來(lái)就是“異步的 Javascript 和 XML”。 很多小伙伴可能會(huì)誤以為 Ajax

    2024年02月07日
    瀏覽(32)
  • 前端異步請(qǐng)求并解決跨域問(wèn)題(Ajax+axios框架)、后端響應(yīng)多個(gè)數(shù)據(jù)(JSON)

    前端異步請(qǐng)求并解決跨域問(wèn)題(Ajax+axios框架)、后端響應(yīng)多個(gè)數(shù)據(jù)(JSON)

    目錄 一、前后端同步異步請(qǐng)求 1.同步請(qǐng)求: 2.異步請(qǐng)求: 3.跨域問(wèn)題(前端問(wèn)題) 4.axios框架(封裝后) 二、后端向前端響應(yīng)多個(gè)數(shù)據(jù)-JSON 1.同步請(qǐng)求: ? ? ? ? 發(fā)送一個(gè)請(qǐng)求,回應(yīng)請(qǐng)求,回應(yīng)的內(nèi)容會(huì)覆蓋瀏覽器中的內(nèi)容,這樣會(huì) 打斷 前端其他的正常操作。 2.異步請(qǐng)求:

    2024年02月07日
    瀏覽(32)
  • 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í),是作為前端工程師的根本?;A(chǔ)知識(shí)能保證最基本的使用,即招聘進(jìn)來(lái)能干活,能產(chǎn)出

    2024年04月27日
    瀏覽(34)
  • 【Ajax】如何通過(guò)axios發(fā)起Ajax請(qǐng)求

    【Ajax】如何通過(guò)axios發(fā)起Ajax請(qǐng)求

    ?? 作者簡(jiǎn)介: 前端新手學(xué)習(xí)中。 ?? 作者主頁(yè): 作者主頁(yè)查看更多前端教學(xué) ?? 專欄分享:css重難點(diǎn)教學(xué) ? Node.js教學(xué) 從頭開(kāi)始學(xué)習(xí) ? ajax學(xué)習(xí) Axios是專注于網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求的庫(kù),相比于原生的XMLHttpRequest對(duì)象,axios簡(jiǎn)單易用。相比于Jquery,axios更加輕量化,只專注于網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)

    2024年02月02日
    瀏覽(36)
  • 前端學(xué)習(xí)——ajax (Day1)

    前端學(xué)習(xí)——ajax (Day1)

    axios 使用 練習(xí) 練習(xí) 案例 axios 錯(cuò)誤處理 https://apifox.com/apidoc/shared-1b0dd84f-faa8-435d-b355-5a8a329e34a8 url好像失效了

    2024年02月16日
    瀏覽(19)
  • 前端學(xué)習(xí)——ajax (Day4)

    前端學(xué)習(xí)——ajax (Day4)

    Promise - 鏈?zhǔn)秸{(diào)用

    2024年02月16日
    瀏覽(17)
  • 前端學(xué)習(xí)——ajax (Day3)

    前端學(xué)習(xí)——ajax (Day3)

    使用 XMLHttpRequest XMLHttpRequest - 查詢參數(shù) XMLHttpRequest - 數(shù)據(jù)提交 Promise - 三種狀態(tài)

    2024年02月16日
    瀏覽(18)
  • 【AJAX框架】AJAX入門(mén)與axios的使用

    【AJAX框架】AJAX入門(mén)與axios的使用

    在現(xiàn)代Web開(kāi)發(fā)中,異步JavaScript和XML(AJAX)已經(jīng)成為不可或缺的技術(shù)之一。AJAX使得網(wǎng)頁(yè)能夠在不刷新整個(gè)頁(yè)面的情況下與服務(wù)器進(jìn)行數(shù)據(jù)交互,為用戶提供更加流暢和動(dòng)態(tài)的體驗(yàn)。本文將介紹AJAX的基本概念,并深入探討如何使用axios這一強(qiáng)大的JavaScript庫(kù)進(jìn)行AJAX請(qǐng)求。 AJAX的核

    2024年01月24日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包