如何解决使用HTTP状态代码进行Rails AJAX错误处理
|| 希望有人可以阐明我遇到的问题。 我有一个使用JQuery 1.5.2的Rails 3.0.7应用程序。我正在使用不干扰人的Javascript(ujs)来调用控制器函数(销毁)。如果操作出现问题,我想在我的response_with块中使用HTTP状态代码来触发Ajax错误处理。以下不适用于我: #controller
class BooksController < ApplicationController
respond_to :html,:js
before_filter :load_all_books,:only => [:index,:destroy]
def index
respond_with @books
end
def destroy
if request.delete?
@book = Book.find(params[:id])
unless @book.in_use?
@book.destroy
respond_with(@books)
else
respond_with(@books) do |format|
format.js {render :status => :locked }
end
end
end
end
private
def load_all_books
@books = Book.order(\'created_at desc\')
end
end
#books/index.html.erb
<%= link_to \"delete\",book_path(book),:remote => :true,:method => :delete,:confirm => \"Are you sure\",:class => \"remove-link\" %>
#books/destroy.js.erb
jQuery(function($) {
$(\'.remove-link\').bind(\"ajax:success\",function(evt,data,status,xhr){
alert(\'success\');
});
$(\'.remove-link\').bind(\"ajax:error\",xhr,error){
alert(\'error\');
});
});
如果操作成功,则正确触发ajax:success回调。但是,如果操作失败,并且返回a:locked(423)状态,则不会触发ajax:error回调。
有什么想法为什么不起作用以及如何触发ajax:error回调?
提前致谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。