相关疑难解决方法(0)

删除隐藏字段后,Django中的CSRF错误

在StackOverflow上得到了一些关于如何使用JavaScript删除所有隐藏字段的建议.

提交表单会将用户发送给/submit调用submit_form视图.在我的views.py文件中,我定义了我的索引页面(带有表单),以及接收提交的页面(我的/index页面为我打印错误,但这不应该影响任何东西):

def index(request, error_message = ''):
    t = get_template('index.html')
    html = t.render(Context( { 'ERROR_MESSAGE': error_message } ))
    return HttpResponse(html)

def submit_form(request):
    # get the POST data out of request and do something
    pass
Run Code Online (Sandbox Code Playgroud)

我已经能够通过将代码更改为:来抑制错误:

from django.contrib.csrf.middleware import csrf_exempt

@csrf_exempt
def submit_form(request):
    # get the POST data out of request and do something
    pass
Run Code Online (Sandbox Code Playgroud)

这实际上关闭了submit_form函数的CSRF.但是,我确信这不是理想的修复方法(现在我不会在我的表单中检查伪造).

我试过更复杂的修复,比如

  • 添加此代码以立即遵循jQuery代码(从提交中删除隐藏字段)
init:function(){
var ac=this

    # advice from StackOverflow to remove hidden 
    # …
Run Code Online (Sandbox Code Playgroud)

javascript forms django csrf

0
推荐指数
1
解决办法
404
查看次数

标签 统计

csrf ×1

django ×1

forms ×1

javascript ×1