Axios:iOS上未发送授权承载

j2cgzkjk  于 2022-10-21  发布在  iOS
关注(0)|答案(1)|浏览(199)

我使用以下命令在每个传出请求上附加了一个值为‘Beader{Access_Token}’的授权标头:window.axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('access_token');
这在任何地方都可以很好地工作,除了在iOS上,那里的头没有附加到请求。我也试着把它附加在一个单独的请求上,而且是同一个问题。请求中不存在标头,服务器返回401未经授权的错误。
无论iOS上的浏览器是Safari、Chrome还是Firefox,这个漏洞都会发生。它确实是专门针对iOS的(我的版本是11.3.1)。在安卓或台式机(MacOS、Windows)上都没有问题。我用iOS模拟器进行了一些调试(在那里也会发生问题):在本地存储中有一个名为access_token的项,所以问题与此无关。
这是怎么回事?
谢谢

brvekthn

brvekthn1#

正如您所提到的,这个错误似乎只发生在iOS/Safari上。我们也面临着这个问题,在我们的React原生应用程序中的AXIOS。
只有GET请求才会发生这种情况(授权令牌可以通过POST和PUT请求正常发送)。
因此,您有两个选择:
1.使用不同的头部密钥,例如这里建议的Authorization-Fake-X
1.如果仅GET请求出现此问题,请更改请求的类型(例如POST或PUT)。这是一个难看的选择,因为您将打破REST API行为。

更新:

根据this SO answer的说法,这个问题似乎已经在2021年10月得到解决。尽管如此,我们必须为使用旧版Safari和iOS的用户修复这个问题。

相关问题