में सेट नहीं किए जा रहे हैं मैं एक डीजेएनजीओ + एंगुलरजेएस एप्लीकेशन विकसित कर रहा हूं, जहां कोणीय भाग django द्वारा नहीं किया जा रहा है।XSRF शीर्षलेख AngularJS
myApp = angular.module('myApp', [])
myApp.config(['$httpProvider',
function(provider){
provider.defaults.xsrfCookieName = 'csrftoken';
provider.defaults.xsrfHeaderName = 'X-CSRFToken';
}
फिर, किसी भी पोस्ट करने से पहले, मैं एक प्राप्त जो कुकी सेट करें:
इस प्रकार मैं कोणीय $httpProvider
निर्धारित किया है। मैं क्रोम के माध्यम से इस बात की पुष्टि कर सकते हैं कि कुकी सेट है:
set-cookie:csrftoken=hg88ZZFEdLPnwDdN1eiNquA8YzTySdQO; expires=Tue, 19-Aug-2014 12:26:35 GMT; Max-Age=31449600; Path=/
हालांकि जब मैं एक पोस्ट करते हैं, कोई X-CSRFToken
हैडर स्थापित किया जा रहा है (यह में संसाधनों/कुकीज़/Chrome डेवलपर टूल में स्थानीय होस्ट दृश्यमान हो)
इस पोस्ट के रूप में क्रोम द्वारा दर्ज की गई है:
POST /data/activities/search HTTP/1.1
Host: localhost:14080
Connection: keep-alive
Content-Length: 2
Accept: application/json, text/plain, */*
Origin: http://localhost:14080
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
Content-Type: application/json;charset=UTF-8
Referer: http://localhost:14080/public/html/main.html?codekitCB=398694184.799418
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: csrftoken=hg88ZZFEdLPnwDdN1eiNquA8YzTySdQO
क्यों नहीं हैडर स्थापित किया जा रहा है? इस कार्यक्षमता को सक्रिय करने के लिए मुझे और क्या करना चाहिए?
(ओर ध्यान दें: अगर मैं मैन्युअल रूप से $ http() कॉल में हेडर पास, पोस्ट अनुरोध ठीक काम करता है .. इसलिए समस्या वास्तव में नहीं AngularJS द्वारा सेट किए जाने शीर्षक है)
मैं 1.0.8 का उपयोग कर रहा था, लेकिन मुझे पता चला यह रिलीज 1.2.0 – luca