Nuxt.js - nuxt/axios(会持续完善)

本文介绍了在Nuxt2项目中如何添加和使用Axios拦截器,包括在nuxt.config.js中的配置,以及在plugins/axios.js中定义onRequest和onError方法来处理请求和错误。此外,还提到了设置基础URL、请求头和全局身份验证的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在这里插入图片描述

nuxt2

官方文档

基础

  • 下载,新建好项目,或者已经有的项目,我们可以通过yarn(或者npm)去添加该包
    yarn add @nuxtjs/axios
    
  • nuxt.config.js配置
    module.exports = {
      module:['@nuxtjs/axios'],  // 可以让我们全局使用 $axios
      axios:{ 
      	// 可以在这里做一些配置代理什么的
      },
      plugins: ['~/plugins/axios'],   //这个会对应咱们下面为axios写的插件
    }
    

添加拦截器

在这里我们需要用到 plugins 就是插件
/plugins/axios.js 我们需要创建一个这个文件,作为我们的插件去处理axios

export default function ({ $axios, redirect }) {
  $axios.onRequest(config => {
    console.log('Making request to ' + config.url)
  })

  $axios.onError(error => {
    const code = parseInt(error.response && error.response.status)
    if (code === 400) {
      redirect('/400')
    }
  })
}

在这里axios插件提供了一些插件

  • onRequest(config)

  • onResponse(response)

  • onError(err)

  • onRequestError(err)

  • onResponseError(err)

  • setBaseURL
    用来设置URL的地址

    if (process.client) {
      this.$axios.setBaseURL('http://api.example.com')
    }
    
  • setHeader
    用来设置请求头Header

    this.$axios.setHeader('Authorization', '456')
    
  • setToken
    用这个可以轻松设置全局身份验证表头

     this.$axios.setToken('123', 'Bearer')
    

使用

直接用即可,其他的事nuxtjs已经帮你做好了

async asyncData({ $axios }) {
  const ip = await $axios.$get('http://icanhazip.com')
  return { ip }
}

nuxt3

后续会更新

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刮刮乐打工仔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值