2014-11-02 3 views
0

첫째, stackoverflow에서 내 주제에 대한 일부 연결이있는 모든 스레드를 검사했지만 여전히 작동하는 솔루션을 얻을 수 없었습니다. 이제 양식을 제출하려고 할 때 오류가 발생합니다 : 'Forbidden (403). CSRF verification failed. Request aborted....'. 나는 이런 식으로 작업을 수행합니다ExtJS + Django. POST 메서드로 양식을 제출하는 방법

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 데모를 통해 양식을 보내야하는 가장 간단한 방법을 보여줄 것입니다. 미리 감사드립니다!

답변

0

여기의 문제는 CSRF 쿠키에서 발생합니다.

당신은 (하지 테스트)

예합니다 (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'}) 

희망을.

관련 문제