Ajax错误检查-如果Ajax请求失败,如何防止内容发生更改


Ajax error checking - how to keep content from changing if AJAX request failed?

我不知道如何清楚地说出我的问题——

我在一个复选框上得到了一个简单的ajax请求,它将一个值发送到数据库。

如果ajax请求由于任何原因失败,我希望不更改复选框。它目前的工作方式是,如果请求失败,我第一次点击它时它不会改变。但如果我再次点击,即使请求仍然失败,它也会改变。

这是代码:

<script type="text/javascript">
    $(document).ready(function(){
        $("#favorite").change(function() { 
            if($(this).is(":checked")) { 
                $.ajax({
                    url: 'favorite.php',
                    type: 'POST',
                    data: { file_id:$(this).attr("name"), strState:"1" },
                    success: function() { // this happens after we get results
                        $("#favWrap").empty();
                        $("#favWrap").html("<input id='favorite' name='165' type='checkbox' checked/><label></label>");
                    },
                    error:function(){
                        $("#favWrap").empty();
                        $("#favWrap").html("<input id='favorite' name='165' type='checkbox' /><label></label>")
                    }
                });
            } else {
                $.ajax({
                    url: 'favorite.php',
                    type: 'POST',
                    data: { file_id:$(this).attr("name"), strState:"0" },
                    success: function() { // this happens after we get results
                        $("#favWrap").empty();
                        $("#favWrap").html("<input id='favorite' name='165' type='checkbox' /><label></label>");
                    },
                    error:function(){
                        $("#favWrap").empty();
                        $("#favWrap").html("<input id='favorite' name='165' type='checkbox' checked/><label></label>")
                    }
                });
            }
        }); 
    });
</script>

非常感谢您的帮助!

如果响应中出现错误,则可以使用仅checkuncheck复选框

$('#favorite').attr('checked', true); // Checks it $('#favorite').attr('checked', false); // Unchecks it