在React中使用Safari而不是Chrome接收401状态

Mak*_*kai 5 https http token django-rest-framework reactjs

我们面临的问题如下:当使用Safari作为浏览器而不是Chrome时,get api调用会收到401状态。我们使用的技术是React和Django Rest Framework。在React中,我们也使用axios。同样,当我们使用Chrome作为浏览器时,一切都很好(没有401错误,并且身份验证似乎没问题),但是当我们切换到Safari时,它不起作用。我们还应该注意,在使用Postman进行测试时,如果我们将令牌存储在身份验证标头中,则不会给出401状态(有效)。

为了解决这个问题,我们在Django后端中尝试了不同类型的身份验证类,并确保CORS在我们的设置中。我们还确保我们遵循了react组件的生命周期进行正确的安装,并包括了每个api调用所需的适当信息。我们认为这是客户端问题。

请参阅下图,以简要了解我们看到的网络请求/响应以及我们的api调用。

网络响应和API调用

Mak*_*kai 8

因此,事实证明,问题的根源在于我们没有用正斜杠结束一个api URL,结果是301,然后是304。Chrome浏览器可以自动更正,但Safari,IE和firefox不能。

  • 这里有同样的问题,但我收到的是 401 状态代码而不是 301/304。简直不敢相信!Safari 和 iPhone 只给我带来快乐:( (2认同)