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

React Router BrowserRouter非根路由返回401 Unauthorized错误求助

问题:使用React Router BrowserRouter时非根路由返回401 Unauthorized错误

刚学习React Router,正在将一个使用哈希路由的项目重构为使用BrowserRouter。测试时发现,只有根路由(localhost:3000/)可正常加载对应页面,在localhost:3000/后输入任意内容,无论app.jsx中是否存在对应Route,都会返回401 Unauthorized错误。

推测问题在于:index.html文件未被正确提供给浏览器,存在认证拦截阻止浏览器获取该文件。

已尝试的解决方法

  • 切换为HashRouter可解决问题,但不清楚原因;
  • 检查Network标签,对比之前成功项目的请求,未发现异常,附失败请求信息:

    请求URL: http://localhost:3000/register
    请求方法: GET
    状态码: 401 Unauthorized
    远程地址: 127.0.0.1:3000
    Referrer Policy: strict-origin-when-cross-origin
    Connection: keep-alive
    content-length: 35
    Content-Type: application/json; charset=utf-8
    Date: Mon, 13 Mar 2023 18:16:02 GMT
    ETag: W/"23-NPT3XhyBFeUKvS1KZ/jc0dymZSA"
    Keep-Alive: timeout=5
    X-Powered-By: Express
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7
    Accept-Encoding: gzip, deflate, br
    Accept-Language: en-US,en;q=0.9
    Connection: keep-alive
    Cookie: connect.sid=s%3AeT5IKOFT3GsMAeTlpNuEnbP5vy3beQXK.mucLgb13MH5y0YQRLefsHn5AT02no8BVUQukNPwrUa8
    Host: localhost:3000
    If-Modified-Since: Mon, 13 Mar 2023 16:23:19 GMT
    If-None-Match: W/"281-186dbc88f8a"
    sec-ch-ua: "Chromium";v="110", "Not A(Brand";v="24", "Google Chrome";v="110"
    sec-ch-ua-mobile: ?0
    sec-ch-ua-platform: "Linux"
    Sec-Fetch-Dest: document
    Sec-Fetch-Mode: navigate
    Sec-Fetch-Site: none
    Sec-Fetch-User: ?1
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36

  • 移除app.jsx中除Routes和Route外的所有代码,排除了上下文或旧用户认证的影响。

已排查一周仍未解决,寻求相关帮助。

内容的提问来源于stack exchange,提问作者Cameron Peck

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:35:46