मैं एक ही समस्या का समाधान करने की कोशिश कर रहा है, और जैसा कि arnaud576875 कहते हैं आप प्रत्येक ajax अनुरोध पर CSRF टोकन शीर्ष लेख जोड़ें Django डॉक्स की तरह कहते हैं https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax और किसी भी Ajax अनुरोध आप कर पहले कि कोड को निष्पादित करने के लिए है।
लेकिन वहाँ कुछ अतिरिक्त है, आप किसी भी AJAX अनुरोध करने के लिए प्रयास करने से पहले अपने अनुप्रयोग के कुकीज़ को CSRF टोकन लोड करने के लिए एक रास्ता खोजने के लिए है, दर्दनाक घंटे का एक बहुत शोध के बाद मैं एक विशिष्ट जवाब नहीं मिल सका ऐसा करने के लिए, मैंने जो पाया, यह सुनिश्चित करने के लिए कि आपका दृश्य एक कुकी के भीतर सीएसआरएफ टोकन भेजता है, आप ensure_csrf_token()
का उपयोग प्रत्येक दृश्य में कर सकते हैं जिसे आप टोकन https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#django.views.decorators.csrf.ensure_csrf_cookie प्राप्त करना चाहते हैं, यह बहुत से लोगों के लिए काम करता है, लेकिन मेरे लिए काम नहीं किया
एक और तरीका विरासत विधि का उपयोग कर रहा है, 'django.middleware.csrf.CsrfResponseMiddleware'
को अपने MIDDLEWARE_CLASSES
में जोड़ रहा है लेकिन मैं इस विधि की अनुशंसा नहीं करता क्योंकि कई सुरक्षा जोखिम छोड़ देता है। https://docs.djangoproject.com/en/1.2/ref/contrib/csrf/#legacy-method
मेरे द्वारा पहले किए गए सभी तरीकों से मेरे लिए काम नहीं किया गया। जिस तरह से है कि मैं अजाक्स कुछ अनुरोध करने की अनुमति कर रहा हूँ निम्नलिखित के रूप में है, और किसी को यह एक खतरनाक विधि पाता है तो कृपया मुझे बताएं: पहली बार देखने को
- जाओ कि आपके उपयोगकर्ता की तरह, मारा जाएगा/घर/पृष्ठ
- पुनः निर्देशित या कुछ भी
request.META["CSRF_COOKIE_USED"] = True
पार्स करने से पहले इस डालें और वह यह, इस तरह है कि मेरे लिए काम करता है, लेकिन जैसा कि मैंने कहा पहले मुझे यकीन है कि अगर यह सही विधि या सबसे सुरक्षित है नहीं कर रहा हूँ एक सीएसआरएफ सुरक्षा को पूरा करने के लिए।
मेरा मानना है कि आप अपना उत्तर [यहां] (https://docs.djangoproject.com/en/dev/ref/contrib/csrf/) पा सकते हैं। सबसे सरल समाधान django उदाहरण पर सीएसआरएफ सुरक्षा को अक्षम करना प्रतीत होता है। अगला सबसे अच्छा विकल्प फॉर्म से django के सीएसआरएफ टोकन को पकड़ने के लिए अपने जावास्क्रिप्ट लॉगिन को अपडेट करना है और इसे AJAX अनुरोध के हिस्से के रूप में शामिल करना है। – aroth
मेरे पिछले जवाब पर एक नज़र डालें। http://stackoverflow.com/questions/6506897/csrf-token-missing-or-incorrect-while-post-parameter-via-ajax-in-django/6533544#6533544 – sigurd