如何在Devise上强制响应JSON?
当我的控制器需要使用
进行身份验证时before_filter :authenticate_user!
如果我发布JSON数据,响应仅在JSON中。 但我希望Devise总是以JSON响应某些控制器和操作。
修改
我正在使用
:token_authenticatable
所以我每次通话都会传递auth_token:
curl --data "token=xyzHtPAFGuAuFiVWsxsZ&receipt=adsfadsfsdfdsf" http://0.0.0.0:3000/user/receipt
但是当令牌不正确时,响应是HTML重定向
<html><body>You are being <a href="http://0.0.0.0:3000/users/sign_in">redirected</a>.</body></html>
我希望这个回复是JSON
答案 0 :(得分:0)
我不确定我是否理解你的问题,但这可能就是你要找的东西。只需在控制器中添加respond_to,如:
class MyController < ApplicationController
respond_to :json
...
end
答案 1 :(得分:0)
您需要定义所需响应的内容类型。
curl -X POST \
-H "Content-Type:application/json" \
-H "Accept:application/json \
-d "token=xyzHtPAFGuAuFiVWsxsZ&receipt=adsfadsfsdfdsf" \
http://0.0.0.0:3000/user/receipt
请查看 curl 的手册页以获取更多参数。