2011-12-09 18 views
6

जब हम render :json =>@profiles का उपयोग कर JSON आउटपुट वापस करते हैं, तो आउटपुट 406 त्रुटि के साथ आवश्यक परिणाम लौटाएगा। कैसे '406 स्वीकार्य नहीं' त्रुटि से बच सकते हैं?आरओआर 406 के साथ JSON को स्वीकार्य त्रुटि

+1

क्या आप जिस नियंत्रक कोड का उपयोग कर रहे हैं उसे प्रदान कर सकते हैं? –

+0

एक तस्वीर 1000 शब्दों के लायक है लेकिन कुछ कोड आपके प्रश्न का उत्तर देंगे! –

उत्तर

11

मुझे यकीन है कि आपके पास this problem है।

स्पष्टीकरण:

  • /path_to_action.json
  • /path_to_action कहा जाता है हेडर के साथ कहा जाता है:

    अपने नियंत्रक केवल रिटर्न json उत्तर देता

    def action 
        # call 
        respond_to do |format| 
        format.json { render json: results } 
        end 
    end 
    

    यह जैसे ही json वापस आ जाएगी कहो Content-Type:application/json; और शायद कुछ अन्य शीर्षलेख प्रकार (उदा। X-Requested-With:XMLHttpRequest)

अन्यथा, यह 406 Not Acceptable त्रुटि देता है।

समस्या से बचने के, यदि आपका नियंत्रक केवल json देता है, लिखें:

def action 
    # call 
    render json: results 
end 

अन्यथा, /path_to_action.json बजाय का उपयोग करें।

0

यह मेरे साथ हुआ जब मेरे पास नियंत्रक कार्रवाई पर before_action :authenticate_user! था, लेकिन इसे एक अनधिकृत पृष्ठ से कॉल कर रहा था।

पृष्ठ स्वयं ही पुनर्निर्देशन जारी करने का प्रयास कर रहा था।

उपयोगकर्ता को प्रमाणीकरण, या before_action को हटाने के लिए मेरे लिए हल किया गया।

संबंधित मुद्दे