【发布时间】:2019-02-14 12:08:39
【问题描述】:
我遇到了一个非常奇怪的错误,其中 fetch API(在 React-Native 项目中)导致 CSRF 错误,但 cURL 不会导致相同的错误。这是值得注意的代码:
获取代码:
_signup = () => {
fetch('http://localhost/users/', {
method: 'post',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(this.state)
}).then(response => {
return response.json();
}).then(jsonResponse => {
console.log(jsonResponse);
}).catch (error => {
console.log(error)
})
}
给出以下响应
Object {
"detail": "CSRF Failed: CSRF token missing or incorrect.",
}
cURL 代码是:
curl -X POST -d '{"username":"a", "email":"", "password":"a"}' -H "Content-Type: application/json" http://localhost/users/
响应在哪里
{"url":"http://localhost/users/13/","username":"a7","email":""}
相关的 Django 视图只是一个视图集:
Django 视图:
class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all()
serializer_class = UserSerializer.
有什么理由会发生这种情况吗?据我所知, fetch 和 curl 应该做同样的事情?
【问题讨论】:
标签: django react-native curl fetch