के लिए रेल की सुरक्षा_from_forgery फ़िल्टर को बंद करने के लिए कैसे करें मेरे पास Rails3 के साथ बनाई गई वेबसाइट है और अब मैं मोबाइल क्लाइंट एक्सेस के लिए जेसन एपीआई लागू करना चाहता हूं। हालांकि, protect_from_forgery फ़िल्टर की वजह से क्लाइंट से जेसन पोस्ट अनुरोध भेजना। चूंकि क्लाइंट सर्वर से कोई भी डेटा पुनर्प्राप्त नहीं करेगा, क्लाइंट को auth_token प्राप्त करने का कोई तरीका नहीं है, इसलिए मैं केवल json अनुरोधों के लिए protect_from_forgery विकल्प को बंद करना चाहता हूं (मैंने सोचा कि रेल 3 डिफ़ॉल्ट रूप से ऐसा करता है लेकिन स्पष्ट रूप से यह नहीं करता है) ।केवल json
मुझे पता है कि इसी तरह के विषय पर here पर चर्चा की गई है, लेकिन उस स्थिति में, उसे पोस्ट अनुरोध भेजने से पहले auth_token प्राप्त होता है।
तो मेरा प्रश्न केवल json के लिए protect_from_forgery को बंद कर रहा है यह करने का अच्छा तरीका है? यदि हां, तो ऐसा कैसे करें? यदि नहीं, तो विकल्प क्या है?
FYI करें, मैं ajax अनुरोध के बाद का उपयोग करें
$.ajax({
type: 'POST',
url: "http://www.example.com/login.json",
data: { 'email': emailVal, 'password': passwordVal },
success: onSuccess,
error: onError,
dataType: "json"
});
और मैं ActionController :: InvalidAuthenticityToken त्रुटि मिलती है।
वैसे, कर्ल आदेश के बाद हालांकि काम करता है ...
कर्ल एच "सामग्री प्रकार: आवेदन/json" -c cookies.txt -d '{ "ईमेल": emailVal, "पासवर्ड": passwordVal } '-X पोस्ट http://www.example.com/login.json मैं
धन्यवाद जानकारी के लिए। ऐसा लगता है कि समस्या jquery 1.4.2 के साथ है। यदि मैं jquery 1.4.2 का उपयोग करता हूं तो किसी भी तरह रेल 3 json के लिए फ़िल्टर protect_from_forgery फ़िल्टर करता है लेकिन यह नहीं है कि मैं jquery 1.5 का उपयोग करता हूं। – katsuya
Google से यहां आया - दुर्भाग्य से लिंक टूटा हुआ है। क्या आप एक और विस्तृत उत्तर प्रदान कर सकते हैं? – Workman
@dombesz वही यहाँ - लिंक हटा दिया गया है। – Zumwalt