当我使用带有Django后端的React本机应用程序提取(iOS)请求时,未收到标题授权令牌,但其他标题是。
我尝试使用NC -L 8090只是要查看该应用程序是否正确发送了标题,并且它在那里。另外,这只是在iOS版本中发生的,Android One效果很好。
在检查Django后端时,未收到授权令牌(我在authentication.py文件中打印了我的内容)
我在此处放置了获取代码:
let response = fetch('http://xxx.xxx.x.xxx:8000/' + 'users', {
method: 'GET',
headers: {
'content-type': 'application/json',
'x-app-key': xxxxxxxxxx,
'Authorization': 'Token xxxxxxxxxxxxxxxxxxxx'
}
}).then((response) => {...}
IM在响应中收到的错误消息是" 403 Django Standar无效身份验证"。
我不使用oauth2。任何可能提供的信息,请告诉我,并感谢您的任何帮助。
我刚刚注意到的奇怪的是,当我在端口8000处使用NC CMD(LC -L 8000)时,它具有相同的行为。未收到授权令牌。
我解决了我的问题,在URL的末端增加了斜线。
let response = fetch('http://xxx.xxx.x.xxx:8000/' + 'users/', {
method: 'GET',
headers: {
'content-type': 'application/json',
'x-app-key': xxxxxxxxxx,
'Authorization': 'Token xxxxxxxxxxxxxxxxxxxx'
}
}).then((response) => {...}
我使用Laravel框架有一个后端的变体。我终于通过在公共文件夹的.htaccess文件中使用以下内容解决了它。
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
在我的情况下,结合了另一个重要因素,从fetch中的URL中失去了尾随的斜线。
希望这会有所帮助。祝你好运。