避免在 django post 方法中使用 csrf 令牌
Avoid csrf token in django post method
我正在制作网络应用程序的一部分(未登录的用户、所有访问者)可以填写表格,我必须将该数据(姓名、phone 号码、问题)保存在数据库中。
我正在使用 Django 制作 REST,但对于前端,我将使用 React 或 Django,我正在 Django 框架中制作 POST 方法,该方法从 POST https 请求中读取 JSON 数据,然后我将该数据保存到数据库..但我收到错误 CSRF 验证失败。请求中止。因为我不使用 CSRF 令牌,因为这不是必需的(我没有登录用户)。
但我不想禁用 CSRF,因为对于管理页面我会用它来验证用户?
那么有人知道如何避免为此方法使用 CSRF 令牌吗?提前致谢..
def saveDataToDatabase(request):
if request.method == 'POST':
json_data = json.loads(request.body)
try:
data = json_data['data']
except KeyError:
HttpResponseServerError("Malformed data!")
这是方法的一部分..
可以使用 @csrf_exempt
装饰器在视图上禁用 csrf 保护。
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def saveDataToDatabase(request):
# Your code here
您是否考虑过使用视图来处理请求?您可以使用这些,这样您就不必执行我给您的下一个建议。
如果第一个建议不够好,您可以在 Django 的设置文件中禁用 csrf 令牌。您需要删除(或注释)可用中间件列表中的 django.middleware.csrf.CsrfViewMiddleware
。
有其他问题尽管问。 ;)
我正在制作网络应用程序的一部分(未登录的用户、所有访问者)可以填写表格,我必须将该数据(姓名、phone 号码、问题)保存在数据库中。 我正在使用 Django 制作 REST,但对于前端,我将使用 React 或 Django,我正在 Django 框架中制作 POST 方法,该方法从 POST https 请求中读取 JSON 数据,然后我将该数据保存到数据库..但我收到错误 CSRF 验证失败。请求中止。因为我不使用 CSRF 令牌,因为这不是必需的(我没有登录用户)。 但我不想禁用 CSRF,因为对于管理页面我会用它来验证用户? 那么有人知道如何避免为此方法使用 CSRF 令牌吗?提前致谢..
def saveDataToDatabase(request):
if request.method == 'POST':
json_data = json.loads(request.body)
try:
data = json_data['data']
except KeyError:
HttpResponseServerError("Malformed data!")
这是方法的一部分..
可以使用 @csrf_exempt
装饰器在视图上禁用 csrf 保护。
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def saveDataToDatabase(request):
# Your code here
您是否考虑过使用视图来处理请求?您可以使用这些,这样您就不必执行我给您的下一个建议。
如果第一个建议不够好,您可以在 Django 的设置文件中禁用 csrf 令牌。您需要删除(或注释)可用中间件列表中的 django.middleware.csrf.CsrfViewMiddleware
。
有其他问题尽管问。 ;)