Javascript Rails正在将请求解析为html,即使它';s json

Javascript Rails正在将请求解析为html,即使它';s json,javascript,jquery,ruby-on-rails,ajax,ruby-on-rails-4,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

我正在尝试用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中工作。

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

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

应该在Rails 4和5中工作。

我不是100%确定,但我认为
dataType
只告诉jQuery将响应解析为JSON。它不会告诉服务器您正在请求JSON。摘自文档:“您期望从服务器返回的数据类型。”我不是100%确定,但我认为
dataType
只告诉jQuery将响应解析为JSON。它不会告诉服务器您正在请求JSON。摘自文档:“您期望从服务器返回的数据类型。”