vue中axios的get请求和post请求的传参方式、拦截器示例代码

 更新时间:2023年10月14日 15:06:14   作者:郑建007  
Post是向服务器提交数据的一种请求,get是向服务器发索取数据的一种请求,post在真正接受数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据,本文给大家介绍vue中axios的get请求和post请求的传参方式、拦截器示例代码,感兴趣的朋友一起看看吧

一、GET 和 POST 传参方式的优缺点

        1.post更安全(不会作为url的一部分,不会被缓存,保存在服务器日志,以及浏览器浏览记录中)

        2.post发送的数据量更大(get有url长度限制)

        3.post能发送更多的数据类型(get只能发送ASCII字符)

        4.post比get慢

        5.Post是向服务器提交数据的一种请求,get是向服务器发索取数据的一种请求。

        5.Post是向服务器提交数据的一种请求,get是向服务器发索取数据的一种请求。

        7.post请求包含更多的请求头

        8.post在真正接受数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据

二、GET 和 POST 传参方式的请求过程

post请求的过程:

1.浏览器请求tcp连接(第一次握手)
2.服务器答应进行tcp连接(第二次握手)
3.浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进 行第一次数据发送)
4.服务器返回100 continue响应
5.浏览器开始发送数据
6.服务器返回200 ok响应

get请求的过程

1.浏览器请求tcp连接(第一次握手)
2.服务器答应进行tcp连接(第二次握手)
3.浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
4.服务器返回200 ok响应。

三、axios使用

1、axios的安装

$  npm install axios   // 使用npm
$  bower install axios   // 使用bower
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>   // 通过cdn直接调用

2、axios的引入

import axios from 'axios';

3、get

 第一种参(参数在url上)

axios.get('/adate?id=123').then(res => {
    console.log(res);
})

第二种传参(通过param选项传递参数)

axios.get('/adate?id=123',{
    params: {
        id: 1
    }
}).then(res => {
    console.log(res);
})

4、post

axios.post('/api/axios', {
    uname: 'lisi',
    pwd: 123
}).then(ret => {
    console.log(ret.data)
})

四、拦截器

1、请求拦截器

import axios from 'axios'
 
const service = axios.create({
    baseURL: '基础路径',
    timeout: 15000
})
 
//添加请求拦截器   请求接口统一添加token
service.interceptors.request.use(
    config =>{
        // 成功的回调
    },
    error =>{
        // 失败的回调    
    }
)
 
export default service

2、响应拦截器

import axios from 'axios'
 
const service = axios.create({
    baseURL: '基础路径',
    timeout: 15000
})
 
// 响应拦截器
service.interceptors.response.use(
    response => {
        // 成功回调
    },
    error => {
        // 失败回调
    }
)
 
export default service

3、案例

/**
 * 请求封装
 */
import axios from 'axios';
import configUrl from './url.js';
import store from '../store';
 
const service = axios.create({
    baseURL: configUrl.baseURL,
    // withCredentials: true, // 当跨域请求时发送cookie
    timeout: 15000 // 请求超时
});
 
//添加请求拦截器   请求接口统一添加token
service.interceptors.request.use(
    config =>{
        config.headers.token = store.getters.token || '';  //请求添加token
        return config;
    },
    error =>{
        return Promise.reject(error);
    }
)
 
// 响应拦截器
service.interceptors.response.use(
    response => {
        //如果接口返回token,替换本地旧token
        if (response.headers.token) {
            sessionStorage.setItem("token", response.headers.token);
        }
        //自定义设置后台返回code对应的响应方式
        if (response.data.code == 203) { // 未登录或登录超时
            return Promise.reject(new Error('登录超时'));
        } else { //接口正常,返回数据
            return response;
        }
    },
    error => {
        if (error.message) {
				// this.$massage.error('服务器开小差了,请稍后再试!')   
				//错误响应
				alert('服务器开小差了,请稍后再试!')   
        }
        return Promise.reject(error);
    }
);
//暴露出封装过的服务
export default service;

到此这篇关于vue中axios的get请求和post请求的传参方式、拦截器的文章就介绍到这了,更多相关axios get请求和post请求传参内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • ElementUI对table的指定列进行合算

    ElementUI对table的指定列进行合算

    本文主要介绍了ElementUI对table的指定列进行合算,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • vue前后端端口不一致的问题解决

    vue前后端端口不一致的问题解决

    本文主要介绍了vue前后端端口不一致的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • Vue3+Element Plus实现动态标签页以及右键菜单功能

    Vue3+Element Plus实现动态标签页以及右键菜单功能

    这篇文章主要给大家介绍了关于Vue3+Element Plus实现动态标签页以及右键菜单功能的相关资料,Vue 3和Element Plus提供了一种简单的方法来实现侧边菜单栏与标签页之间的联动,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • Vue实现户籍管理系统户籍信息的添加与删除方式

    Vue实现户籍管理系统户籍信息的添加与删除方式

    这篇文章主要介绍了Vue实现户籍管理系统户籍信息的添加与删除方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue 全局loading组件实例详解

    Vue 全局loading组件实例详解

    这篇文章主要介绍了Vue 全局loading组件,需要的朋友可以参考下
    2018-05-05
  • 详解.vue文件解析的实现

    详解.vue文件解析的实现

    这篇文章主要介绍了详解.vue文件解析的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Vue.js组件实现选项卡以及切换特效

    Vue.js组件实现选项卡以及切换特效

    这篇文章主要为大家详细介绍了Vue.js组件实现选项卡以及切换特效,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Vue自定义指令详解

    Vue自定义指令详解

    这篇文章主要为大家详细介绍了Vue自定义指令的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • django简单的前后端分离的数据传输实例 axios

    django简单的前后端分离的数据传输实例 axios

    这篇文章主要介绍了django简单的前后端分离的数据传输实例 axios,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 探秘vue-rx 2.0(推荐)

    探秘vue-rx 2.0(推荐)

    这篇文章主要介绍了探秘vue-rx 2.0(推荐),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09

最新评论