欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue中如何簡單封裝axios淺析

 更新時間:2021年06月11日 14:24:46   作者:再敲一行就睡覺  
Axios 毋庸多說大家在前端開發(fā)中常用的一個發(fā)送 HTTP 請求的庫,用過的都知道,篇文章主要給大家介紹了關(guān)于vue中如何簡單封裝axios的相關(guān)資料,需要的朋友可以參考下

把axios注入到Vue中

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

axios.defaults.timeout = 5000;                        //響應(yīng)時間
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'; //配置請求頭
axios.defaults.withCredentials= true; //帶cookie
axios.defaults.baseURL = 'http://localhost:8080/';   //配置接口地址

//POST傳參序列化(添加請求攔截器)
axios.interceptors.request.use((config) => {
	//在這里可以添加序列化代碼,根據(jù)后端而定,我用的SSM后端接受Json對象,假如需要序列化可以用qs組件
    return config;
},(error) =>{
    console.log('錯誤的傳參')
    return Promise.reject(error);
});

//返回狀態(tài)判斷(添加響應(yīng)攔截器)
axios.interceptors.response.use((res) =>{
    //對響應(yīng)數(shù)據(jù)做些事
    if(!res.data.success){
        return Promise.resolve(res);
    }
    return res;
}, (error) => {
    console.log('網(wǎng)絡(luò)異常')
    return Promise.reject(error);
});

//返回一個Promise(發(fā)送post請求)
export function fetchPost(url, params) {
    return new Promise((resolve, reject) => {
        axios.post(url, params)
            .then(response => {
                resolve(response);
            }, err => {
                reject(err);
            })
            .catch((error) => {
                reject(error)
            })
    })
}
返回一個Promise(發(fā)送get請求)
export function fetchGet(url, param) {
    return new Promise((resolve, reject) => {
        axios.get(url, {params: param})
            .then(response => {
                resolve(response)
            }, err => {
                reject(err)
            })
            .catch((error) => {
                reject(error)
            })
    })
}
export default {
    fetchPost,
    fetchGet,
}

簡單測試:

loginPost: function() {
		let params = {
			'password': '123',
			'username': 'admin'
		}
		http.fetchPost('/login', params).then((data) => {
			console.log(data)
		}).catch(err => {
			console.log(err)
		})
	},
hello: function() {
		http.fetchGet('/hello', "").then((data) => {
			console.log(data)
		}).catch(err => {
			console.log(err)
		})
	},

post請求:

get請求:

跨域問題,這里是在后端配置的:

在SpringMVC.xml中配置跨域:

<!-- 接口跨域配置 -->
    <mvc:cors>
        <!-- allowed-methods="*" --> <!-- 表示所有請求都有效 -->
        <mvc:mapping path="/**" allowed-origins="*"
                     allowed-methods="POST, GET, OPTIONS, DELETE, PUT"
                     allowed-headers="Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"
                     allow-credentials="true"/>
    </mvc:cors><!-- 接口跨域配置 -->

接口配置:

在Vue中配置 創(chuàng)建一個vue.config.js:

module.exports = {
  devServer: {
    proxy: {
        '/api': {
            target: 'http://127.0.0.1:8080',
            // 在本地會創(chuàng)建一個虛擬服務(wù)端,然后發(fā)送請求的數(shù)據(jù),并同時接收請求的數(shù)據(jù),這樣服務(wù)端和服務(wù)端進行數(shù)據(jù)的交互就不會有跨域問題
            changeOrigin: true, 
            ws: true,
            pathRewrite: {
                '^/api': '' 
                // 替換target中的請求地址,也就是說以后你在請求http://api.jisuapi.com/XXXXX這個地址的時候直接寫成/api即可
            }
        }
    }
  }
}

后端也能正常獲取cookie。

當(dāng)然要注意下面這個配置,這個是帶cookie的原因

axios.defaults.withCredentials= true;

總結(jié)

到此這篇關(guān)于vue中如何簡單封裝axios的文章就介紹到這了,更多相關(guān)vue封裝axios內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Vue3和ApexCharts繪制交互式熱力圖

    使用Vue3和ApexCharts繪制交互式熱力圖

    熱力圖是一種數(shù)據(jù)可視化技術(shù),它使用顏色來表示數(shù)據(jù)點的值,熱力圖常用于可視化分布數(shù)據(jù),例如人口密度、溫度變化或網(wǎng)站流量,本文給大家介紹了如何使用Vue3和ApexCharts創(chuàng)建交互式熱力圖,需要的朋友可以參考下
    2024-06-06
  • vue之使用echarts圖表setOption多次很卡問題及解決

    vue之使用echarts圖表setOption多次很卡問題及解決

    這篇文章主要介紹了vue之使用echarts圖表setOption多次很卡問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vue項目如何配置public靜態(tài)資源路徑訪問

    vue項目如何配置public靜態(tài)資源路徑訪問

    這篇文章主要介紹了vue項目如何配置public靜態(tài)資源路徑訪問方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Vue中JSON文件神奇應(yīng)用fetch、axios異步加載與模塊導(dǎo)入全指南詳細教程

    Vue中JSON文件神奇應(yīng)用fetch、axios異步加載與模塊導(dǎo)入全指南詳細教程

    在Vue中使用JSON文件有多種方式,包括使用fetch方法加載JSON文件、使用axios庫加載JSON文件,以及將JSON文件導(dǎo)入為模塊,這篇文章主要介紹了Vue中JSON文件神奇應(yīng)用fetch、axios異步加載與模塊導(dǎo)入全指南詳細教程,需要的朋友可以參考下
    2024-01-01
  • Vue常用API、高級API的相關(guān)總結(jié)

    Vue常用API、高級API的相關(guān)總結(jié)

    這篇文章主要介紹了Vue常用API、高級API的相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-02-02
  • vue項目打包后部署到服務(wù)器的詳細步驟

    vue項目打包后部署到服務(wù)器的詳細步驟

    這篇文章主要介紹了vue項目打包后部署到服務(wù)器,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • Vue使用mounted和created時,this無法指向data中的數(shù)據(jù)問題

    Vue使用mounted和created時,this無法指向data中的數(shù)據(jù)問題

    這篇文章主要介紹了Vue使用mounted和created時,this無法指向data中的數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Vue實現(xiàn)全局的toast組件方式

    Vue實現(xiàn)全局的toast組件方式

    這篇文章主要介紹了Vue實現(xiàn)全局的toast組件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Vue使用預(yù)渲染代替SSR的方法

    Vue使用預(yù)渲染代替SSR的方法

    這篇文章主要介紹了Vue使用預(yù)渲染代替SSR的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • vue3中的setup使用和原理解析

    vue3中的setup使用和原理解析

    這篇文章主要介紹了vue3的setup的使用和原理解析,通過本文我們學(xué)習(xí)了?setup?函數(shù)執(zhí)行的過程及?Vue?是如何處理捕獲?setup?的返回結(jié)果的,需要的朋友可以參考下
    2022-09-09

最新評論