2011-12-09 8 views
6

Cuando devolvemos la salida JSON utilizando render :json =>@profiles, la salida devolverá los resultados requeridos con un error 406. ¿Cómo puede el evitar ese error '406 no aceptable'?ROR devuelve JSON con 406 Error no aceptable

+1

¿Puede proporcionar el código del controlador que está utilizando? –

+0

¡Una imagen vale más que 1000 palabras, pero se responderá a tu pregunta! –

Respuesta

11

Estoy más que seguro de que tiene this problem.

explicaciones:

Diga su controlador sólo devuelve JSON responde

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

Esto devolverá el JSON tan pronto como:

  • /path_to_action.json se llama
  • /path_to_action se llama con encabezados Content-Type:application/json; y probablemente algunos otros tipos de encabezado (por ejemplo, X-Requested-With:XMLHttpRequest)

De lo contrario, devuelve un error 406 Not Acceptable.

Para evitar el problema, si el controlador sólo devuelve JSON, escribir:

def action 
    # call 
    render json: results 
end 

lo contrario, utilice /path_to_action.json lugar.

0

Esto me pasó cuando tenía before_action :authenticate_user! en la acción del controlador, pero llamaba esto desde una página no autenticada.

La página en sí estaba intentando emitir un redireccionamiento.

Autenticando al usuario, o eliminando el before_action lo resolvió por mí.

Cuestiones relacionadas