溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

vue如何實(shí)現(xiàn)第三方請求

發(fā)布時(shí)間:2023-01-30 13:49:59 來源:億速云 閱讀:191 作者:iii 欄目:web開發(fā)

本文小編為大家詳細(xì)介紹“vue如何實(shí)現(xiàn)第三方請求”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“vue如何實(shí)現(xiàn)第三方請求”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

vue實(shí)現(xiàn)第三方請求的方法:1、通過“import axios from 'axios';”導(dǎo)入axios;2、將axios放在原型鏈上;3、添加請求攔截器,代碼如“axios.interceptors.request.use(config => {...}”。

在vue中請求第三方數(shù)據(jù)--axios

1 axios -> 基于Promise對象 -> async & await

2 create階段 -> 返回Promise對象 -> 返回的數(shù)據(jù)可以直接解構(gòu)【數(shù)據(jù)處理】

  • 要寫入實(shí)例的數(shù)據(jù)(即頁面渲染使用的數(shù)據(jù)),需要用配置參數(shù)data接收

3 import axios from 'axios';

4 多次導(dǎo)入、使用的axios -> 將axios放在原型鏈上

import axios from 'axios';
Vue.prototype.axios = axios;

5 請求方法的別名

  • axios.request(config)

  • axios.get(url[, config])

  • axios.delete(url[, config])

  • axios.head(url[, config])

  • axios.options(url[, config])

  • axios.post(url[, data[, config]])

  • axios.put(url[, data[, config]])

  • axios.patch(url[, data[, config]])

6 攔截器

// 添加請求攔截器
axios.interceptors.request.use(config => {
  // 在發(fā)送請求之前做些什么
  return config;
}, error => {
  // 對請求錯(cuò)誤做些什么
  return Promise.reject(error);
});

// 添加響應(yīng)攔截器
axios.interceptors.response.use(response => {
  // 對響應(yīng)數(shù)據(jù)做點(diǎn)什么
  return response;
}, error => {
  // 對響應(yīng)錯(cuò)誤做點(diǎn)什么
  return Promise.reject(error);
});

6.1 請求攔截應(yīng)用

axios.interceptors.request.use(config => {
  // 在發(fā)送請求之前做些什么
  let token = sessionStorage.getItem('userTk');
  if (token) {
    config.headers.Authorization = token
  }
  return config
}, error => {
  // 對請求錯(cuò)誤做些什么
  return Promise.reject(error);
});

6.2 響應(yīng)攔截應(yīng)用

axios.interceptors.response.use(response => {
  if (response.data.code === '200') {
    Auth.setToken(sessionStorage.getItem('userId'))
  }
  return response;
},
error => {
  console.warn(error);
  console.warn(error.response);
  if ((error.response.status && error.response.status === 401) || error.response.statusCode === 401) {
    // 已超時(shí)
    Auth.removeToken(sessionStorage.getItem('userId'));
    sessionStorage.clear();
    router.replace('/login')
    return Promise.reject('身份已過期,請重新登錄!');
  }
  if(error.response && error.response.status === 500)
  return Promise.reject('服務(wù)異常,請稍后重試!');
});

讀到這里,這篇“vue如何實(shí)現(xiàn)第三方請求”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI