CSRF验证失败.请求中止.当我发送POST请求时

The*_*tro 3 django

我从Android应用程序发送POST请求到我的服务器,但我收到此错误:

在此输入图像描述

POST类似于: http:// example/my_page_url/1000 其中1000是ID.

这是我的观点方法:

def inventory(request, cross_id):

    text_file = open("test.txt", "w")
    text_file.write('POST Received')

    text_file.write(cross_id.__str__())
    text_file.close()

    return render(request, 'Inventory.html', {})
Run Code Online (Sandbox Code Playgroud)

我的模板代码:

<form action='' method="POST">

     <button type="submit" id="btn_save" name="btn_save">Save</button>

    {% csrf_token %}

</form>
Run Code Online (Sandbox Code Playgroud)

实际上,我并不需要调用模板,因为我只想在服务器上执行某些操作.但我现在调用模板只是为了防止任何错误.

我已经阅读了相同问题的其他答案,但是他们都错过了模板中的CSRF令牌或者其他方法,但我相信这里的情况有所不同.

Ked*_*dar 7

您需要为X-CSRFToken所有POST请求添加标头.

您可以从名为cookie的cookie中获取此标头的相应值csrftoken.

要在Postman中测试它,您需要启用Interceptor插件(右上角).

安装完成后,请提出GET请求/admin/login/(确保从浏览器中的站点注销).在cookies部分中,您应该看到一个名为的cookie csrftoken,复制其值.

现在,将请求类型设置POST为相同的URL(/admin/login),添加一个名为X-CSRFToken您之前复制的值的标头.在该部分中设置usernamepassword字段,Body然后点击发送.

X-CSRFToken

如果您的POST不需要身份验证,则可以使用csrftoken早期GET请求.