Post 从 Advanced Rest Client 到 Django 的定义

Post to Django's definition from Advanced Rest Client

将 Advanced Rest 客户端的值发布到 Django 的定义 returns "Forbidden(403)" 警报

header 中似乎缺少 CSRF 令牌,如何解决此问题?以下是我接收 POST 值

的定义
def saveToDb(request):
c = {}
c.update(csrf(request))
if request.method == 'POST':
    form = RegisterForm(request.POST)
    if form.is_valid():
        form_unique_id = form.cleaned_data['form_id']
        form_meta_data = form.cleaned_data['form_content']
        meta_data = FormMetaData.objects.create(
            form_id=form_unique_id,
            form_content=form_meta_data
        )
        meta_data.save()
        result = FormMetaData.objects.all()
    return render(request, "form_saved.html", {'result': result})

定义没有问题,因为它适用于表单输入

您必须在 html;

中提供 {% csrf_token %}
<html>
    <form method="post">
    {% csrf_token %}
    </form>
</html>

Post 使用 CSRF 令牌从 Advanced Rest Client 到 Django: 在Header Section中为key "X-CSRFToken"设置CSRF Token,在body部分添加key-value pairs,Select Content type为"application/x-www-form-urlencoded" 然后点击发送按钮

Post 从没有 CSRF 令牌的 Advanced Rest Client 到 Django: 在正文部分添加键值对,Select 内容类型为"application/x-www-form-urlencoded" 然后点击发送按钮。 注: 请确保为您 post 值

的定义设置 "@csrf_exempt"

如下图