javascript - Rails 将请求解析为 html,即使它是 json

标签 javascript jquery ruby-on-rails ajax ruby-on-rails-4

我正在尝试使用 Rails 创建一个 api。当我尝试在浏览器中发出带有 json 的 ajax 请求时,如下所示:

$.ajax({
  type: "GET",
  url: 'http://localhost:3000',
  dataType: "json",
  contentType: "application/json; charset=utf-8"
});

rails 服务器将其视为 html,从日志中可以看出:

Started GET "/" for ::1 at 2016-08-12 13:52:00 -0400
  ActiveRecord::SchemaMigration Load (0.6ms)  SELECT "schema_migrations".* FROM "schema_migrations"
Processing by LandingsController#index as HTML

它应该显示为 JSON,因为请求是 JSON。

最佳答案

这取决于您的路由设置方式,而不仅仅是您在请求中传递的内容。您应该在 routes.rb 中设置默认格式,如下所示:

root 'your_root_controller#index', format: 'json'

应该适用于 Rails 4 和 5。

关于javascript - Rails 将请求解析为 html,即使它是 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38923853/

相关文章:

javascript - ondrop 事件 - 创建新元素

javascript - 如何遍历一个js对象并记录遍历路径?

javascript - 当我调整浏览器窗口大小时,中央 div 在网站周围移动

javascript - 检测到循环计数器变量值错误

javascript - 单击 slider 下一个和上一个按钮时,我得到 $curr[action] 不是函数

ruby-on-rails - Ruby on Rails : How to customise error message for MailForm when field is blank

mysql - 在 32 位 Rails 应用程序上将 32 位 PK 更改为 BIGINT

ruby-on-rails - 如何每第三个 missed_day 重新启动 current_level(3 次罢工!)?

javascript - 我是否正确使用了回调函数?

php - 在 uploadify 中上传完成后不想隐藏队列项目栏