最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3+ts封裝axios實例以及解決跨域問題

 更新時間:2024年09月18日 10:01:23   作者:韭菜蓋飯  
在前端開發(fā)中,使用axios進行數(shù)據(jù)請求是常見的做法,封裝axios可以統(tǒng)一請求頭處理、方便接口管理、配置多攔截器等,提高代碼的可維護性和重用性,本文詳細記錄了axios的封裝過程,包括安裝、配置跨域處理、接口管理文件的創(chuàng)建等

一、前言

前端請求后端數(shù)據(jù)時,會用到axios,但是如果不將axios封裝好,會導(dǎo)致代碼冗余

二次封裝的好處如下:

  • 求頭能統(tǒng)一處理
  • 便于接口的統(tǒng)一管理
  • 解決回調(diào)地獄
  • 配置攔截器,給不同的實例配置不同的攔截器,支持以對象形式接受多個攔截器配置

因此,在這里記錄一下axios的封裝過程。

二、封裝axios

安裝axios

npm install axios

在目錄/src/utils下創(chuàng)建一個http的文件夾

request.ts文件內(nèi)容如下:

import axios from 'axios';

// 創(chuàng)建 axios 實例
const instance = axios.create({
  baseURL: 'http://127.0.0.1:4008/api/', // API 基礎(chǔ)路徑
  timeout: 100000, // 請求超時時間
  headers:{
	'Content-Type': 'application/json;charset=UTF-8',
  }
});

// 請求攔截器
instance.interceptors.request.use(
  config => {
    // 在發(fā)送請求之前做些什么,例如添加token
    // config.headers['Authorization'] = 'Bearer your-token';
    return config;
  },
  error => {
    // 對請求錯誤做些什么
    return Promise.reject(error);
  }
);

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

export default instance;

api.ts文件如下:

import http from './request'

export const generateVoice = (params:any) => {
  return http.request({
    method: 'POST',
    url: '/generate_voice',
    headers: {
        'Content-Type': 'application/json'
      },
    data:JSON.stringify(params)
  })
}

api.ts文件的目的是為了方便管理接口,你可以把所有接口卸載這里,這樣就會在后面調(diào)用時更加簡潔

三、 解決跨域

vite.config.ts文件中添加如下配置

  server: {
    port: 4008,
    host: '0.0.0.0',
    proxy: {
      "/api": {
        target: "http://64.176.215.21:8000/",
        changeOrigin: false,
        ws: true,
        rewrite:(path) => path.replace(/^\/api/, "")
      }
    },
  },

注意 配置以上文件,你的接口就需要每次帶上/api前綴

在request.ts文件中,我們已經(jīng)做好了每次帶上/api前綴的代碼

 baseURL: 'http://127.0.0.1:4008/api/', // API 基礎(chǔ)路徑
 //or
 baseURL: '/api/', // API 基礎(chǔ)路徑

四、調(diào)用接口

沒有使用api.ts的接口

axios.post('/generate_voice',param)
      .then(response => {
        console.log(response);
      })
      .catch(error => {
        console.error(error);
      });

使用api.ts封裝好的接口

import {generateVoice} from '@/utils/http/api';

generateVoice(param)
  .then(response => {
    console.log("Voice generated successfully:", response.data);
  })
  .catch(error => {
    console.error("Error generating voice:", error);
  });

五、運行結(jié)果

可以看到控制臺返回的亂碼數(shù)據(jù),表示我們請求后臺成功了

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于vue.js中this.$emit的理解使用

    關(guān)于vue.js中this.$emit的理解使用

    本文主要介紹了關(guān)于vue.js中this.$emit的理解使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2022-08-08
  • VUE + UEditor 單圖片跨域上傳功能的實現(xiàn)方法

    VUE + UEditor 單圖片跨域上傳功能的實現(xiàn)方法

    這篇文章主要介紹了VUE + UEditor 單圖片跨域上傳功能的實現(xiàn)方法,需要的朋友參考下
    2018-02-02
  • Vue實現(xiàn)點擊當前行變色

    Vue實現(xiàn)點擊當前行變色

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)點擊當前行變色,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 詳解Vue的監(jiān)聽屬性

    詳解Vue的監(jiān)聽屬性

    這篇文章主要為大家介紹了Vue的監(jiān)聽屬性,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • Vue實現(xiàn)簡單購物車小案例

    Vue實現(xiàn)簡單購物車小案例

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)簡單購物車小案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Vue3在Setup中使用axios請求獲取的值方式

    Vue3在Setup中使用axios請求獲取的值方式

    這篇文章主要介紹了Vue3在Setup中使用axios請求獲取的值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue基礎(chǔ)配置講解

    Vue基礎(chǔ)配置講解

    在本篇文章里小編給大家整理的是關(guān)于Vue基礎(chǔ)配置講解內(nèi)容,有興趣的朋友們可以學(xué)習下。
    2019-11-11
  • Vue配置代理(devServer)解決跨域問題

    Vue配置代理(devServer)解決跨域問題

    這篇文章主要介紹了Vue配置代理(devServer)解決跨域問題,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-08-08
  • Vue過濾器與內(nèi)置指令和自定義指令及組件使用詳解

    Vue過濾器與內(nèi)置指令和自定義指令及組件使用詳解

    這篇文章主要介紹了Vue過濾器與內(nèi)置指令和自定義指令及組件使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習吧
    2022-12-12
  • Vue3項目中引入html頁面的方法舉例

    Vue3項目中引入html頁面的方法舉例

    這篇文章主要給大家介紹了關(guān)于Vue3項目中引入html頁面的相關(guān)資料,Vue3是一個JavaScript框架,通常我們使用它來構(gòu)建單頁應(yīng)用程序(SPA),如果你想在HTML頁面中使用Vue3,可以參考這篇文章,需要的朋友可以參考下
    2023-09-09

最新評論

神农架林区| 东乌珠穆沁旗| 宜宾县| 晋中市| 瑞昌市| 广昌县| 天镇县| 逊克县| 长汀县| 新丰县| 鹰潭市| 嘉黎县| 云霄县| 客服| 北宁市| 玉屏| 正宁县| 夹江县| 勃利县| 临邑县| 社会| 平远县| 鸡西市| 澄城县| 伊川县| 柯坪县| 青田县| 阿克苏市| 察隅县| 抚顺市| 多伦县| 常山县| 苍溪县| 柞水县| 建始县| 林州市| 江门市| 正蓝旗| 从化市| 南雄市| 武川县|