axios设置请求头无效,采用axios请求拦截实现

axios 的运用

目录

axios 的运用

axios 请求头设置相关问题

axios 设置请求头的几种方式:(以 token 为例)

1. 全局修改源码配置项

2. 在单个请求中设置

3. 在新建的实例中设置

4. 在 axios 提供的请求拦截器中设置


axios 请求头设置相关问题

在项目实践中,使用axios设置请求头headers,结果在请求过程中请求头中并没有包含headers中设置的请求头信息,而且后台也没有接收到前台设置的请求头信息,导致数据无法进行校验,请求失败

GET 请求方式

import axios from 'axios'

const params = {}
const config = {
    headers: {
        token: 'xxx'
    }
}

axios.get('/user/info', params, config).then(res => {
    // do something
    // ...
}).catch(err => {
    console.log(err)
})

 

POST请求方式:

import axios from 'axios'

const loginForm = {
    username: 'xxx',
    password: 'xxx'
}
const config = {
    header = {
        "Content-Type":"application/json"
    }
}
axios.post('/user/login', loginForm, config).then(res => {
    // do something
    // ...
}).catch(err => {
    console.log(err)
})

查看请求结果时,发现请求头headers中并没有设置的headers信息,即没有token

解决axios请求无法设置请求头headers

import axios from 'axios'

axios.interceptors.request.use(
    config => {
        config.headers.token = 'xxx'
        // do something
        // ...
        return config
    },
    error => {
        return Promise.reject(error)
    }
)

 设置请求拦截之后,每次发送请求且在返回请求数据之前都会调用这个方法对请求头进行设置

axios 设置请求头的几种方式:(以 token 为例)

1. 全局修改源码配置项

import axios from 'axios'

const config = {
    headers: {
        token: "xxx"
    }
}

axios.request(config)

2. 在单个请求中设置

import axios from 'axios'

const params = {}
const config = {
    headers: {
        token: 'xxx'
    }
}

axios.get('/user/info', params, config).then(res => {
    // do something
    // ...
})

axios.post('/user/info', params, config).then(res => {
    // do something
    // ...
})

3. 在新建的实例中设置

import axios from 'axios'

const options = {
    baseURL: 'http://xxx/api',
    timeout: 60000,
    headers: {
        token: 'xxx'
    }
}

const request = axios.create(options)

const params = {}

request.post('/user/info', params).then(res => {
    // do something
    // ...
}).catch(err => console.log(err))

request.get('/user/info', params).then(res => {
    // do something
    // ...
})

4. 在 axios 提供的请求拦截器中设置

import axios from 'axios'

axios.interceptors.request.use(
    config => {
        config.headers.token = 'xxx'
        // do something
        // ...
        return config
    }
)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值