【问题标题】:Axios headers being sent as payloadAxios 标头作为有效负载发送
【发布时间】:2020-11-24 14:18:20
【问题描述】:

我正在使用 axios 发送 post 请求,这是我的代码:

const getHeaders = (token) => {
    const headers = {
        "content-type": "application/json",
    }

    if (token !== undefined) headers.Authorization = `Bearer ${token}`;

    return headers;
}

const post = async ({ url, body = {}, token }) => {
    const requestObject = {
        headers: getHeaders(token),
        ...body
    }

    console.log(requestObject);

    return await axios.post(url, requestObject);
}

这在没有令牌(例如登录请求)时有效,它可以发送它。但是,对于下一个请求,我传递了一个令牌来请求用户详细信息(例如),但是当我查看 Chrome 网络选项卡时,我看到了这个:

因此,标头作为有效负载发送,但是在请求标头中,“授权:承载...”不存在。我做错了什么?

【问题讨论】:

    标签: javascript axios


    【解决方案1】:

    如果你想发送选项,你需要第三个参数......

    const post = ({ url, body = {}, token }) => {
        const options = {
            headers: getHeaders(token)
        }
        return axios.post(url,body, options);
    }
    

    还有async/ await在这里没有意义

    【讨论】:

    • 那样做不行,忽略第三个参数
    • 连文档都说...axios.post(url[, data[, config]])你确定吗?
    • 是的,我尝试将其更改为 axios({ url, method: 'post', data: body, headers: getHeaders(token) }) 并且它有效,所以我就这样离开了
    猜你喜欢
    • 2017-12-17
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 2013-12-07
    • 2015-06-29
    • 2019-04-03
    • 1970-01-01
    • 2021-07-10
    相关资源
    最近更新 更多