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"
如下图
将 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"如下图