मैं Django 1.7 और django-rest-framework का उपयोग कर रहा हूं।सीएसआरएफ असफल: सीएसआरएफ टोकन गुम या गलत
मैं एक एपीआई कि मुझे देता है इस डाल कुछ JSON डेटा मेरी settings.py
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.AllowAny',),
'DEFAULT_RENDERER_CLASSES': (
# 'rest_framework.renderers.XMLRenderer',
'rest_framework.renderers.JSONRenderer',
# 'rest_framework.renderers.BrowsableAPIRenderer',
)
}
में जब मैं कॉल मिलता है, यह मुझे देता है सभी डेटा, लेकिन जब मैं PUT/पैच के साथ की कोशिश मैं बनाया:
--------Response Headers---------
Status Code: 403
Date: Wed, 29 Oct 2014 18:51:42 GMT
Vary: Cookie
Server: WSGIServer/0.1 Python/2.7.8
Allow: GET, POST, PUT, PATCH, HEAD, OPTIONS
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
---------------------------------
--------Response Body-----------
{"detail": "CSRF Failed: CSRF token missing or incorrect."}
---------------------------------
यह तब होता है जब मैं लॉग इन हूं, अगर मैं अज्ञात हूं तो मैं सही ढंग से पुट/पैच कर सकता हूं।
मैं @csrf_exempt
साथ की कोशिश की है और मैं त्रुटियों मिल गया, मैं स्थापित करने में rest_framework.permissions.AllowAny
...
को शामिल किया है मुझे पता नहीं क्या हो रहा है है। क्या किसी को पता है कि मुद्दा क्या है?
मैं जानता हूँ कि मैं CSRF टोकन देना चाहिए जब मैं प्रमाणीकृत रहा हूँ, लेकिन, वास्तव में मैं एक .NET Windows Forms उपयोग कर रहा हूँ इस एपीआई के साथ संवाद करने के लिए आवेदन, और यह HTTPRequest और HTTPResponse विधियों द्वारा GET कॉल करता है, मुझे नहीं पता कि मैं इस स्थिति में सीएसआरएफ टोकन कैसे प्राप्त कर सकता हूं, मैं AJAX और न ही HTML फॉर्म का उपयोग नहीं कर रहा हूं। ** संपादित करें ** .NET ऐप को JSON प्रारूप में सादा पाठ प्राप्त होता है, और यह वही –
लौटाता है आप कुकी के साथ मैं csrftoken को संभाल सकता हूं और उसे हेडर डेटा में वापस रख सकता हूं, इसलिए मैं PUT कर सकता हूं/अगर मैं लॉग इन हूं तो पैच कॉल करें। धन्यवाद! –
@AlexLordMordor क्या आप कृपया अपना समाधान थोड़ा सा समझा सकते हैं? और जब आप लॉग-इन उपयोगकर्ता थे तो यह क्यों काम नहीं करता था, लेकिन बेनामी तरीकों से यह काम करता था। (मेरे पास बिल्कुल वही समस्या है) –