构建Django Rest框架。当我用户卷曲时#39;使用有效的令牌调用API:
curl -viL -H "Authorization: Token 65c38dfe0c910b727197683aebdcc1c67c1b7aa3" http://127.0.0.1:8000/api/habit/
通过我的javascript调用进行相同的API调用,失败,Django将其视为匿名用户并出错。
fetchHabits: function() {
console.log('Token '+this.authToken.token);
fetch('http://127.0.0.1:8000/api/habit/?format=json',{
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Token '+this.authToken.token
}
})
.then(response => response.json())
.then(json => this.habits = json)
},
我已经证明发送和接收了正确的令牌。我假设,因为CURL的工作原理是Django代码正常工作,因此bug存在于Javascript端的头文件中。
有人可以帮忙吗?
答案 0 :(得分:1)
HTTP标头中有一个缺少的组件,它需要“cedentials:'included'” 最后的标题是:
fetch('http://127.0.0.1:8000/api/habit/?format=json',{
method: 'GET',
headers: {
'Accept': '*/*',
'Content-Type': 'application/json',
'Authorization': 'Token '+this.authToken.token
},
credentials: 'include'
})