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请求传参内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue 双向数据绑定的实现学习之监听器的实现方法

    vue 双向数据绑定的实现学习之监听器的实现方法

    这篇文章主要介绍了vue 双向数据绑定的实现学习之监听器的实现方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • Vue.set 全局操作简单示例

    Vue.set 全局操作简单示例

    这篇文章主要介绍了Vue.set 全局操作,结合简单实例形式分析了Vue.set 全局操作相关使用技巧与注意事项,需要的朋友可以参考下
    2019-09-09
  • 基于Vue.js 2.0实现百度搜索框效果

    基于Vue.js 2.0实现百度搜索框效果

    这篇文章主要为大家详细介绍了基于Vue.js 2.0实现百度搜索框效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)

    vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)

    这篇文章主要介绍了vue 弹窗时 监听手机返回键关闭弹窗功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值(页面不跳转) ,需要的朋友可以参考下
    2019-05-05
  • Vue.extend 编程式插入组件的实现

    Vue.extend 编程式插入组件的实现

    这篇文章主要介绍了Vue.extend 编程式插入组件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 详解vue-router2.0动态路由获取参数

    详解vue-router2.0动态路由获取参数

    本篇文章主要介绍了详解vue-router2.0动态路由获取参数,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 在Vue3里使用scss实现简单的换肤功能

    在Vue3里使用scss实现简单的换肤功能

    这篇文章主要介绍了在Vue3里使用scss实现简单的换肤功能,主题色切换、亮色模式和暗黑模式切换、背景图切换,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-12-12
  • VUE3基础学习之click事件详解

    VUE3基础学习之click事件详解

    由于vue是一个双向数据绑定的框架,它的点击事件与以前常用的还是有很大的差别的,下面这篇文章主要给大家介绍了关于VUE3基础学习之click事件的相关资料,需要的朋友可以参考下
    2022-01-01
  • Vue.js开发环境快速搭建教程

    Vue.js开发环境快速搭建教程

    这篇文章主要为大家详细介绍了Vue.js开发环境快速搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • vue.js自定义组件实现v-model双向数据绑定的示例代码

    vue.js自定义组件实现v-model双向数据绑定的示例代码

    这篇文章主要介绍了vue.js自定义组件实现v-model双向数据绑定的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01

最新评论