VUE项目整合Axios

       Axios ,是一个基于promise  的网络请求库,作用于node.js和浏览器中,它是 isomorphic 的。在服务端它使用原生node.js http模块, 而在客户端 (浏览端) 则使用XMLHttpRequest。Axios就是用于发送get、post等请示的。

vue项目使用组件前先引入依赖(注意:axios对node版本有要求,如果最新版本axios报错,可以降低axios版本)

引入依赖:

npm install --save axios

卸载依赖:

npm uninstall --save axios

新增一个js文件来封装axios,在vue项目新增文件夹utils,js文件request.js

request.js文件内容如下:

import axios from 'axios'
import { Message } from 'element-ui'   

//定义服务发送地址
let baseURL = 'http://localhost:8090' 

//定义axios请求
const service = axios.create({
    baseURL: baseURL,
    timeout: 1* 60 * 60 * 1000  //定义超时时间
})

//请示拦截器(请示之前)
service.interceptors.request.use(
    error => {
        config.log(error)
        Promise.reject(error)
    }
)
//请示拦截器(请示之后)   
service.interceptors.response.use(
    response =>{
        const status = response.status
        switch (status) {
            case 400: 
                Message({
                    message: response.message,
                    type: 'error',
                    duration: 5 * 1000,
                    offset: 80,
                    showClose: true
                })
                break
            }
            return response
        },
       //定义错误信息
        error => {
            if(error.message.includes('timeout')) {
                error.message = '请示超时'
                return _relogin(error)
            }
            
            if(!error.response){
                if(error.config.timeout == 10800000) return Promise.resolve()
                error.message = '与服务器通讯失败'
                return _relogin(error)
            }
            
            switch(error.response.status){
                case 400:
                    error.message = '操作失败,数据有误'
                    break
                case 401:
                    error.message = '登录超时'
                    break
                case 403:
                    error.message = '拒绝访问'
                    break
                case 404:
                    error.message = '未找到对应服务'
                    break
                case 408:
                    error.message = '请示超时'
                    break
                case 500:
                    error.message = error.response.data.message
                    break
                case 501:
                    error.message = '服务未实现'
                    break
                case 502:
                    error.message = '网络错误'
                    break
                case 503:
                    error.message = '服务不可用'
                    return _relogin(error)
                case 504:
                    error.message = '网络超时'
                    return _relogin(error)
                case 505:
                    error.message = 'http版本不受支持'
                    break
                default: 
                    error.message = '连接出错'
            }
            Message({
                message: error.message,
                duration: 5 * 1000,
                type: 'error',
                offset: 80,
                showClose: true
            })
            return Promise.reject(error)
}
)

export default service

再新增http.js文件,用于封装get、post请求

http.js文件内容如下:

import request from '@/utils/request'
export function get(path, query) {
    return request({
        url: '/api' + path,
        method: 'get',
        params: query
    })
}

export function post(path, data) {
    return request({
        url: '/api' + path,
        method: 'post',
        data
    })
}

export function put(path, data) {
    return request({
        url: '/api' + path,
        method: 'put',
        data
    })
}

完成以上封装后,使用方法

import { post } from ‘@/api/http’    //在文件中引入http.js文件

 post(‘/****/***后台方法路径’, 请求参数).then(response => {})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: Vue CLI是一个基于Vue.js进行快速开发的完整系统,而axios是一个基于Promise的HTTP客户端,用于发送HTTP请求。将Vue CLI与axios整合可以方便地在Vue项目中进行网络请求。整合的步骤如下: 1. 创建Vue CLI项目。 2. 在项目中封装axios,可以在项目的src目录下创建一个util文件夹,然后在util文件夹中创建一个http.js文件,用来封装axios。 3. 在main.js中引入封装好的axios,并将其添加到Vue的原型对象中,这样在其他组件中就可以通过this.$http来使用axios进行网络请求。 4. 如果需要解决跨域问题,在开发环境中可以设置代理来解决,可以在配置文件中进行相应的配置。 5. 在项目中使用axios时,可以根据需要选择是否拦截请求或响应。如果需要拦截,可以使用封装好的axios实例来发起异步请求;如果不需要拦截,可以直接使用没有封装的axios来发起异步请求。 通过以上步骤,就可以实现Vue CLI与axios整合,方便在Vue项目中进行网络请求。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [Vue总结(二)—— 整合axios](https://blog.csdn.net/qq_43776195/article/details/123307777)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue-cli整合axios的几种方法](https://blog.csdn.net/weixin_30845171/article/details/96808354)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不开心的猴子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值