Я сталкиваюсь с действительно странной ошибкой, когда 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 View:
class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all()
serializer_class = UserSerializer.
Есть ли причина, по которой это должно происходить? Насколько я знаю, fetch и curl должны делать одно и то же?