美文网首页
一、Axios的基本使用 ------ 2020-08-26

一、Axios的基本使用 ------ 2020-08-26

作者: 自己写了自己看 | 来源:发表于2020-08-26 23:23 被阅读0次

1、Axios的常用配置项

axios({
    // 发送给服务器的地址 baseURL + url

    // 接口地址
    url: '/user/list',
    // 自动添加在URL之前的服务器地址
    baseURL: 'http://www.baidu.com',
    // 请求方式
    methods: 'get',
    // 设置自定义请求头信息
    headers: {
        "Content-Type": "x-www-form-urlencoded"
    },
    // GET请求方式的传参,默认按照问号传参方式传递给服务器
    params: {
        search: ""
    },
    // POST请求方式的参数,默认将对象转换成JSON字符串,按照 application/json 格式传递给服务器
    data: {
        id: 1234,
        name: 'zhangsan'
    },
    // `paramsSerializer` 是一个负责 `params` 序列化的函数
    // (e.g. https://www.npmjs.com/package/qs, http://api.jquery.com/jquery.param/)
    paramsSerializer: function(params) {
        return Qs.stringify(params, { arrayFormat: 'brackets' })
    },
    transformRequest: function(data) {
        // `transformRequest` 允许在向服务器发送前,修改请求数据
        // 只能用在 'PUT', 'POST' 和 'PATCH' 这几个请求方法
        // 后面数组中的函数必须返回一个字符串,或 ArrayBuffer,或 Stream
        return Qs.stringify(data);
    },
    // `timeout` 指定请求超时的毫秒数(0 表示无超时时间)
    // 如果请求话费了超过 `timeout` 的时间,请求将被中断
    timeout: 1000,
    // `responseType` 表示我们自己预设的服务器响应的数据类型,
    // 可以是 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream'
    responseType: 'json', // default
    // `validateStatus` 定义对于给定的HTTP 响应状态码是 resolve 或 reject  promise 。如果 `validateStatus` 返回 `true` (或者设置为 `null` 或 `undefined`),promise 将被 resolve; 否则,promise 将被 rejecte
    validateStatus: function(status) {
        return status >= 200 && status < 300; // default
    },
})

// Axios的公共配置
axios.defaults.baseURL = 'http://www.baidu.com';
axios.defaults.headers['Content-Type'] = 'x-www-form-urlencoded';
axios.defaults.transformRequest = data => Qs.stringify(data);
axios.defaults.timeout = 0;
axios.defaults.withCredentials = true;


// axios.get(url, [config])
// axios.post(url.data, [config])
axios.get('/list', {
    params: {
        page: 1,
        size: 50
    }
}).then(response => {
    /**
     * status
     * statusText
     * request: XHR实例对象
     * config: 自己传递的配置项信息
     * headers: 相应头信息
     * data: 响应主体信息,默认已经转成JSON格式
     */
})

axios.post('/list', {
    id: '123'
})

axios.interceptors.request.use(config => {
    let token = sessionStorage.getItem('token');
    if (token) {
        config.headers['Authorization'] = token;
    }
    return config
})

axios.interceptors.response.use(response => {
    // 从服务器获取到数据,我们只需要将 response中的data传递给下一个then
    return response.data;
}, error => {
    let response = error.response;
    // 说明服务器有响应
    if (error) {
        switch (error.status) {
            case 400:
                // 一般情况下未登录

                break;
            case 403:
                // 一般情况下登录过期
                break;

            case 404:
                // 地址不存在
                break;

            default:
                break;
        }
    } else {
        // 说明网络层出了问题,服务器无法连接
        if (!window.navigator.onLine) {
            alert('断网了')
        }
    }

    return Promise.reject(response)
})

相关文章

  • 一、Axios的基本使用 ------ 2020-08-26

    1、Axios的常用配置项

  • Vue3.0 项目中遇到的问题(十二)

    一. axios的基本使用 二. axios的初步封装 (1) 详细流程图: 三. axios 对有的实例...

  • 2020-01-11 axios的基本使用

    axios的基本使用 安装axios,因为运行时也要用到所以是--savenpm install axios --...

  • axios基本使用

    1.axios({config}) 默认是get请求 带有参数的url get参数可以写在params配置里,po...

  • axios

    axios axios 是一个专注于网络请求的库! axios 的基本使用:繁 发送get请求: 发送post请求...

  • axios的基本使用

    一、安装 cd 项目的目录 npm install --save --save-exact axios vue-a...

  • Axios的基本使用

    axios使用 作为全局对象来使用,不像vue-resource挂在在Vue实例上。 引入 npm install...

  • axios的基本使用

    axios的安装和引入 Axios 是一个基于 promise 的 HTTP 库,在vue中使用axios进行异步...

  • axios的基本使用

    axios 基于promise用于浏览器和node.js的http客户端 支持浏览器和node.js 支持prom...

  • axios配置相关

    参考文档 Axios 请求配置参数详解 axios 全攻略之基本介绍与使用(GET 与 POST)

网友评论

      本文标题:一、Axios的基本使用 ------ 2020-08-26

      本文链接:https://www.haomeiwen.com/subject/crhqsktx.html