Rails 3: HTTP 406 и пустая страница при попытке просмотра json в браузере - PullRequest
3 голосов
/ 21 октября 2011

Я немного новичок в Rails и ajax, и я сталкиваюсь со следующим разочарованием при попытке отладки некоторых довольно простых запросов ajax в моих контроллерах.

У меня есть следующий код:

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

Когда я пытаюсь отладить это вручную, вводя URL-адрес и параметры, контроллер правильно готовит ответ, но Rails отвечает HTTP/406 Not Acceptable, если я не раскомментирую команду format.html. (Обратите внимание, что format.html - просто попытка исправить это.)

Я не хочу, чтобы эта функция отвечала html, поскольку она предназначена только для ajax. Кроме того, Rails отвечает с помощью json, выгравированного на пустой html, и я хотел бы использовать плагин, такой как JSONView, для его предварительного усиления.

Что здесь происходит? Я чувствую, что желаемый результат очень прост, но что-то где-то все портит. Когда я пытаюсь отладить AJAX, я хочу, чтобы мой браузер вытащил проклятый JSON, не будучи хромым: - (

1 Ответ

3 голосов
/ 23 октября 2011

Оказывается, что добавление format=json к параметрам URL делает то, что я хочу: заставляет Rails возвращать json со всеми правильными заголовками

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...