2011-04-05 2 views
4

Django는 1.3으로 업데이트되었으며 사실 1.2.5 이후로 Cross Site Request Phgery 보호 토큰을 XMLHttpRequests로 전달하는 스키마가 확장되었습니다. Django 사람들은 an example for jQuery을 제공하여 모든 XHR에 특정 헤더를 적용합니다.CSRF에 대한 prototype.js 기반 XHR 요청 보호

프로토 타입 (따라서 Scriptaculous)은이 스키마를 준수해야하지만 프로토 타입에 X-CSRFToken 헤더를 추가하는 방법을 찾을 수 없습니다. 가장 좋은 방법은 jQuery와 같이 앱에 적용하는 방식으로 한 번 수행하는 것입니다.

할 방법이 있습니까?

답변

7

이것은 추측이지만이 extending 기본 AJAX 클래스 시도해 볼 수도 있습니다 ...

Ajax.Base.prototype.initialize = Ajax.Base.prototype.initialize.wrap(
    function (callOriginal, options) { 
     var headers = options.requestHeaders || {}; 
     headers["X-CSRFToken"] = getCookie("csrftoken"); 
     options.requestHeaders = headers; 
     return callOriginal(options); 
    } 
); 
+0

드디어 솔루션을 테스트하는 시간이 있었는데, 그것은했다. Django가 제공 한 jQuery 예제와 같이 익명 함수 안에'getCookie' 함수를 통합했습니다. – Lloeki