【问题标题】:Rails 3: HTTP 406 and blank page on trying to view json in browserRails 3:尝试在浏览器中查看 json 时出现 HTTP 406 和空白页面
【发布时间】:2011-10-21 15:46:10
【问题描述】:

我对 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 而不会跛脚:-(

【问题讨论】:

  • 您在测试时是否在您的网址中使用?format=js
  • ...或将 .json 附加到您的网址?
  • ^^^^ 解决了它......出于好奇,是否可以(容易)在没有 format=json 标志的情况下使其响应?

标签: ruby-on-rails ruby-on-rails-3 json controller


【解决方案1】:

事实证明,将format=json 添加到 URL 参数可以达到我的要求:强制 Rails 返回带有所有正确标头的 json

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    相关资源
    最近更新 更多