通过Safari访问时,React应用程序会抛出401错误,但不会以其他方式访问 [英] React app throws 401 error when accessed through safari, but not otherwise

查看:21
本文介绍了通过Safari访问时,React应用程序会抛出401错误,但不会以其他方式访问的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在CloudFront分发版后面的S3存储桶中托管了一个Reaction应用程序。它与Django服务器对话。登录在所有浏览器上都可以正常工作(确认凭据正确,并且没有基本的连接问题)。一旦登录,应用程序就会重定向到一个页面,该页面通过FETCH执行一个简单的GET请求(到一个需要身份验证的URL)。这在所有桌面浏览器(MacOS)上都能成功运行,Safari除外,Safari收到401未经授权的错误。同样,我在iOS上的每个浏览器上都收到了401未经授权的错误。

我尝试刷新Mac的域名系统,但无济于事。我完全被难住了。如果它根本不起作用,那就好了,但除了狩猎,其他地方都能用?

取码:

  componentDidMount() {
    fetch(`${apiRoot}/info`, {
      method: "GET",
      headers: {
        Accept: "application/json",
        "Content-Type": "application/json",
        Authorization: `Token ${this.props.auth.token}`
      }
    })
      .then(response => response.json())
      .then(data => {
        this.setState({
          Name: data.name,
          Email: data.email
        });
      });
  }

推荐答案

在获取URL的末尾添加正斜杠:

fetch(`${apiRoot}/info/`, ...

Chrome和Firefox似乎可以自行解决这个问题,但Safari并非如此。

这篇关于通过Safari访问时,React应用程序会抛出401错误,但不会以其他方式访问的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆