我正在使用Rails 4构建API,并且在我的控制器中,我使用respond_to
来区分html
和json
请求,这些请求都可以正常工作。在Postman中测试我的API时,我添加了以下标题:Content-Type: application/json
但在我的请求中,我仍然需要在其末尾添加.json
,否则:https://myapi.com/api/users.json
否则即使前面的标题存在,Rails也会以html
响应。
我的问题是:Rails是否可以识别Content-Type: application/json
标题并使用json
回复,而我没有使用网址中的.json
部分,如下所示:{{1 }}?
答案 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)
。