2011-12-09 5 views
6

render :json =>@profilesを使用してJSON出力を返すと、 の出力は406エラーで必要な結果を返します。 さんはどうすれば '406 Not Acceptable'というエラーを回避できますか?RORが406のエラーを返す

+1

使用しているコントローラコードを提供できますか? –

+0

画像は1000語の価値がありますが、いくつかのコードはあなたの質問に答えてくれます! –

答えて

11

私はあなたがthis problemを持っていると確信しています。

説明:

  • /path_to_action.json
  • /path_to_actionはヘッダと呼ばれて呼び出されます。

    は、あなたのコントローラが唯一のJSONこれは、すぐとしてJSONを返します

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

    答えを返すと言います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を削除すると解決されます。