如何让Rails基于标头响应json

时间:2016-07-07 08:47:46

标签: ruby-on-rails ruby json ruby-on-rails-4

我正在使用Rails 4构建API,并且在我的控制器中,我使用respond_to来区分htmljson请求,这些请求都可以正常工作。在Postman中测试我的API时,我添加了以下标题:Content-Type: application/json但在我的请求中,我仍然需要在其末尾添加.json,否则:https://myapi.com/api/users.json否则即使前面的标题存在,Rails也会以html响应。

我的问题是:Rails是否可以识别Content-Type: application/json标题并使用json回复,而我没有使用网址中的.json部分,如下所示:{{1 }}?

2 个答案:

答案 0 :(得分:3)

您还需要将Accept标题设置为Accept: application/json

如果您对原因感到好奇,以及两个标题之间的区别,这篇文章的答案最能解释:https://webmasters.stackexchange.com/questions/31212/difference-between-the-accept-and-content-type-http-headers

答案 1 :(得分:0)

如果您在视图中使用任何链接助手,只需添加格式信息,例如posts_path(format: :json)