首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只处理get请求的axios授权头

只处理get请求的axios授权头
EN

Stack Overflow用户
提问于 2019-06-29 17:55:56
回答 2查看 885关注 0票数 1

我有一个简单的api端点,用于共享posts /api/v1/posts/{id}/share,它需要使用承载令牌进行身份验证。

我试图像下面这样发送一个帖子请求,它的响应是401

代码语言:javascript
运行
复制
axios.post(`/api/v1/posts/${id}/share`,
        {
        "headers": {
                "Authorization":"Bearer "+token,
                "Content-Type": "application/x-www-form-urlencoded",
                "Accept": "application/json"
            },
        });

只有当我将其更改为接受后端的GET并将代码更改为此时,它才起作用。

代码语言:javascript
运行
复制
axios.get(`/api/v1/posts/${id}/share`,
        {
        "headers": {
                "Authorization":"Bearer "+token,
                "Content-Type": "application/x-www-form-urlencoded",
                "Accept": "application/json"
            },
        });

我用http客户端测试了我的端点(失眠),所以问题似乎确实存在于axios中。为什么会发生这种情况,我该如何解决?

我使用的服务器是apache,后端框架是laravel

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-01 03:13:27

造成这个问题的根本原因是:axios.postaxios.get有不同的语法--第二个参数在axios.get中表示"config“,而在axios.post中表示"data”。这就是为什么它在GET中工作但在POST中失败的原因。

根据axios 文档,这2种语法是:

axios.get(url,config) axios.post(url[,data,config])

因此,当您用代码发送HTTP请求时:

代码语言:javascript
运行
复制
axios.post(`/api/v1/posts/${id}/share`,
        {
        "headers": {
                ...
            },
        });

请求被发送,HTTP body作为{"header":{...}} --没有配置请求头。

为了使它与axios.post一起工作,应该将headers配置对象作为第三个参数传递。例如:

代码语言:javascript
运行
复制
axios.post(`/api/v1/posts/${id}/share`,
        {}, // or whatever data you want to send.
        {
        "headers": {
                ...
            },
        });
票数 4
EN

Stack Overflow用户

发布于 2019-06-30 21:51:34

所以我用不同的语法解决了这个问题

代码语言:javascript
运行
复制
const options = {
        method:"post",
        "headers": {
            "Authorization":token,
            "Content-Type": 'application/x-www-form-urlencoded',
            "Accept": "application/json"
        },
        url:`/api/v1/posts/${id}/share`
    };

    axios(options);

老实说,我说不出是什么改变了,但这是对任何看到这个的人来说的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56819691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档