我有一个带有 Rails/Devise 服务器的 Backbone.js 客户端。
我想用重定向实现注销过程。
这是我的客户端代码
$.ajax
url: "/sign_out"
xhrFields:
'X-CSRF-Token': $('meta[name=csrf-token]').attr('content')
type: "DELETE"
complete: xCompleteFunction = (XMLHttpRequest, textStatus) ->
#handle here?
该请求由适当的控制器方法处理。然后我有
def after_sign_out_path_for(resource)
root_path
end
这是日志
[2012/12/11 15:44:07] (INFO) 76430 Started DELETE "/sign_out"
[2012/12/11 15:44:07] (INFO) 76430 Processing by Devise::SessionsController#destroy as */*
....
[2012/12/11 15:44:07] (INFO) 76430 Redirected to http://localhost:3000/
Hoverer,重定向由 Rails 控制器处理,实际上重定向使用了相同的动词“DELETE”。
[2012/12/11 15:44:13] (INFO) 76430 Started DELETE "/"
[2012/12/11 15:44:13] (INFO) 76430 Processing by HomeController#index as */*
是否可以处理客户端上的重定向,并防止 Rails 控制器捕获它?由于ajax调用,我期待设计将301/302返回给客户端。