我一直在使用axios从私有API获取一些数据,但现在从一个特定端点获取数据时遇到了问题.

有趣的是,使用内置的fetch API,我收到了200个响应,但与axios相同的请求不断返回401错误.知道有什么问题吗?

此代码适用于:

const upVoteCommentTwo = async () => {
  console.log(localStorage.getItem("access_token"));
  try {
    const response = await fetch(
      `https://exammple.com/comments/${commentId}/vote/up`,
      {
        method: "POST",
        headers: {
          "X-API-KEY": "XXX",
          "Authorization": localStorage.getItem("access_token"),
        },
      }
    );

    console.log(await response.status);
  } catch (err) {
    console.log(err);
  }
};

但这不起作用:

const upVoteCommentOne = async () => {
  console.log(localStorage.getItem("access_token"));
  try {
    const response = await axios.post(
      `https://example.com/comments/${commentId}/vote/up/`,
      {
        headers: {
          "Content-Type": "application/json",
          "X-API-KEY": "XXX",
          "Authorization": localStorage.getItem("access_token"),
        },
      }
    );

    console.log(response.status);
  } catch (err) {
    console.log(err);
  }
};

推荐答案

问题来自axios的参数.根据doc,一种有效的方法是按以下顺序调用它:url、要发送的数据对象、请求配置对象.由于您似乎没有发送任何内容,因此可以将空对象作为数据,如下所示:

const response = await axios.post(
  `https://example.com/comments/${commentId}/vote/up/`,
  {},
  {
    headers: {
      "Content-Type": "application/json",
      "X-API-KEY": "XXX",
      "Authorization": localStorage.getItem("access_token"),
    },
  }
);

然而,根据GitHub的这issue条,它可能不起作用.如果是这样的话,请try 另一种提出请求的方式:

const response = await axios({
  method: "post",
  url: `https://example.com/comments/${commentId}/vote/up/`,
  headers: {
    "Content-Type": "application/json",
    "X-API-KEY": "XXX",
    "Authorization": localStorage.getItem("access_token"),
  },
  data: {},
});

Javascript相关问答推荐

如何使用JavaScript向html元素添加样式

在JavaScript中打开和关闭弹出窗口

foreach循环中的Typescript字符串索引

用相器进行向内碰撞检测

fetch在本地设置相同来源的cookie,但部署时相同的代码不会设置cookie

单击更新页面的按钮后,页面刷新;测试/断言超时,有两个标题,但没有一个标题

在页面上滚动 timeshift 动垂直滚动条

我可以使用CSS有效地实现最大宽度=100%和最大高度=100%,而无需父母有明确的/固定的宽度和高度,替代方法吗?

GrapeJS -如何保存和加载自定义页面

类型自定义lazy Promise. all

如何控制Reaction路由加载器中的错误状态?

Html文件和客户端存储的相关问题,有没有可能?

我可以使用空手道用户界面来获取网页的当前滚动位置吗?

在开发期间,Web浏览器如何运行&qot;.jsx&qot;文件?

获取';无法解决导入和导入";slick-carousel/slick/slick-theme.css";';错误

更新Redux存储中的对象数组

判断函数参数的类型

通过跳过某些元素的对象进行映射

在将元素追加到DOM之前,createElement()是否会触发回流?混淆abt DocumentFragment行为

对不同目录中的Angular material 表列进行排序