You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决React+TypeScript中Axios请求401认证失败问题

解决Bearer Token认证401错误

你的代码里存在三个关键问题导致认证失败:

  • 请求方法冲突:使用axios.get发起请求时,又在配置里指定method: "post",这会导致请求方法混乱,若API要求GET请求则会触发401。
  • Headers格式错误:axios的headers配置需用普通JS对象,而非浏览器原生Headers实例,否则axios无法正确解析请求头。
  • Authorization字符串语法错误:Bearer token的字符串存在多余引号和换行,正确格式应为Bearer 你的token,无额外符号。

修正后的代码如下:

import React, { FC, useState, useEffect } from "react";
import axios from "axios";
import { IUser } from "../types/Types";
import List from "./List";
import UserItem from "./UserItem";

const HomePage: FC = () => {
  const [users, setUsers] = useState<IUser[]>([]);

  useEffect(() => {
    fetchUsers();
  }, []);

  async function fetchUsers() {
    try {
      const response = await axios.get<IUser[]>(
        "https://api.json-generator.com/templates/ZM1r0eic3XEy/data",
        {
          headers: {
            Authorization: 'Bearer wm3gg940gy0xek1ld98uaizhz83c6rh2sir9f9fu'
          }
        }
      );
      setUsers(response.data);
    } catch (e) {
      alert(e);
    }
  }

  return (
    <List
      items={users}
      renderItem={(user) => <UserItem user={user} key={user.id} />}
    />
  );
};

export default HomePage;

如果API实际需要POST请求,只需将axios.get改为axios.post,无需额外指定method字段(axios.post默认使用POST方法)。

内容的提问来源于stack exchange,提问作者Michael Hamar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 04:20:33