ExtJS + Django。如何使用POST方法提交表单

时间:2014-11-02 12:04:43

标签: django extjs

首先,我应该说我检查了stackoverflow上与我的主题有一些联系的所有线程,但我仍然无法获得有效的解决方案。所以,现在当我尝试提交表单时,我收到错误:'Forbidden (403). CSRF verification failed. Request aborted....'。我是这样做的:

var frm=Ext.create('Ext.form.Panel',{
    method:'POST',
    standardSubmit:false,
    items:[{
         xtype:'textarea',
         name:'sourcecode',
         value:sourcecode
    }]
})

frm.getForm().submit({url:'/myapp/saveSourceCode'})

事实上,我不知道如何发送CSRF cookie。我看到的所有建议都没有帮助。所以,我需要最简单的工作演示,它将以最简单的方式演示我们应该如何使用POST方法发送表单。提前谢谢!

1 个答案:

答案 0 :(得分:0)

这里的问题来自 CSRF cooki

您可以尝试此操作(来自WC3 school docs

示例(未测试):

function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1);
    if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
}
return "";
} 


var csrf = getcookie('csrftoken')

var frm=Ext.create('Ext.form.Panel',{
method:'POST',
standardSubmit:false,
items:[{
     csrfmiddlewaretoken:csrf,
     xtype:'textarea',
     name:'sourcecode',
     value:sourcecode
}]
})

frm.getForm().submit({url:'/myapp/saveSourceCode'})

希望这有帮助。