Tom Corelis
Tom Corelis

Reputation: 5050

Rails 3: HTTP 406 and blank page on trying to view json in browser

I am a little new with Rails and ajax, and I'm encountering the following frustration whilst trying to debug some fairly simple ajax requests in my controllers.

I have the following code:

respond_to do |format|
  #format.html { render :json => db_clean_response.to_json }
  format.json { render :json => db_clean_response.to_json }
end

When I try to debug this by manually entering the URL and parameters, the controller correctly prepares the response, but Rails responds with HTTP/406 Not Acceptable unless I uncomment the format.html command. (Note that the format.html stuff is just for trying to fix this.)

I don't want this function responding with html, as its only for ajax stuff. Besides, Rails responds with the json uglyprinted onto empty html, and I'd like to use a plugin like JSONView to prettify it.

What's going on here? I feel like the desired result is very simple, but something, somewhere is messing it up. When I try to debug ajax I want my browser to pull up the damn json without being lame :-(

Upvotes: 3

Views: 695

Answers (1)

Tom Corelis
Tom Corelis

Reputation: 5050

It turns out that adding format=json to the URL parameters does what I want: forces Rails to return json with all the right headers

Upvotes: 3

Related Questions