Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django rest框架,包括;X-CSRFTOKEN“;标题,接收“;CSRF失败:CSRF令牌丢失或不正确;_Django_React Native_Django Rest Framework_React Native Ios - Fatal编程技术网

Django rest框架,包括;X-CSRFTOKEN“;标题,接收“;CSRF失败:CSRF令牌丢失或不正确;

Django rest框架,包括;X-CSRFTOKEN“;标题,接收“;CSRF失败:CSRF令牌丢失或不正确;,django,react-native,django-rest-framework,react-native-ios,Django,React Native,Django Rest Framework,React Native Ios,我目前正在创建一个react本机ios应用程序,其中我正在与django rest framework后端进行交互。我使用后端进行身份验证,并将csrftoken、sessionid和消息cookie存储在异步存储中 我的后端视图是 class ItemList(generics.ListCreateAPIView): queryset = Item.objects.all() serializer_class = ItemSerializer permission_cl

我目前正在创建一个react本机ios应用程序,其中我正在与django rest framework后端进行交互。我使用后端进行身份验证,并将csrftoken、sessionid和消息cookie存储在异步存储中

我的后端视图是

class ItemList(generics.ListCreateAPIView):
    queryset = Item.objects.all()
    serializer_class = ItemSerializer
    permission_classes = (IsAuthenticated,)
GET请求示例如下:

axios({
    url:'https://myapi.com/api/items/',
    method: "GET",
    withCredentials: true,
    headers: {
     Cookie: mycookies,
}),...
POST请求示例如下:

axios({
    url:'https://myapi.com/api/items/',
    method: "POST",
    withCredentials: true,
    headers: {
     Cookie: mycookies,
     'X-CSRFTOKEN': cookies.csrftoken.value
}),...
注意:mycokies是cookies的完整字符串,而cookies是javascript对象。这不是打字错误

在我进行身份验证后不久,GET和POST请求都可以工作。我可以从api中检索和创建项。但是,如果我关闭Ios应用程序并重新打开POST,请求将停止工作。GET请求将返回200响应,但POST请求返回403身份验证错误,消息为“CSRF失败:CSRF令牌丢失或不正确”

当我发送POST请求时,我确定csrftoken、sessionid和messages cookie仍然正确,并且我已经检查了X-csrftoken头是否与csrftoken cookie匹配。我认为csrftoken正在更改POST请求,而我发送的XCSRF-TOKEN不正确。但是,如果是这种情况,GET请求也不会工作


非常感谢您的帮助。

我也有这个问题,无法解决。你在这方面有什么进展吗?