在jQuery中捕获异常

Bru*_*uno 7 javascript asp.net ajax error-handling jquery

我有以下代码:

<script type="text/javascript">
    $(document).ready(function() {

        $("#Save").click(function() {

            $.post("url", {
                "data": "data"
            }, function(data) {
                alert(data);
            });

        });

    });
</script>
Run Code Online (Sandbox Code Playgroud)

我正在测试这个脚本,我正在进行的测试之一就是关闭asp.net Web开发服务器,然后单击按钮.

IE表示"访问被拒绝"错误,我想捕获此处发生的任何错误,并在这种情况下向用户显示友好消息.

我试图使用try/catch但没有工作......

任何线索?

cle*_*tus 14

请改用该$.ajax()方法.它有一个错误的钩子.

例如:

$.ajax({
    url: 'document.xml',
    type: 'GET',
    dataType: 'xml',
    timeout: 1000,
    error: function(){
        alert('Error loading XML document');
    },
    success: function(xml){
        // do something with xml
    }
});
Run Code Online (Sandbox Code Playgroud)


Rya*_*ary 7

这是一个有用的片段,用于跟踪FireBug中的任何jquery ajax错误.

// Displays any ajax errors in the Firebug console instead of hiding them
$(document).ajaxError(function(){
    if (window.console && window.console.error) {
        console.error(arguments);
    }
});
Run Code Online (Sandbox Code Playgroud)

如果您将Ajax与jQuery一起使用,您可能已经注意到在出现问题时不会收到任何错误消息.即使你的回调函数中存在重大错误,jQuery也会默默地失败,扫除地毯下的任何错误,让你对刚刚发生的事情毫无头绪.

运行此代码后,您将开始在Firebug控制台中收到错误消息(如果您的Ajax调用或回调有任何中断).错误信息不是最好的,但至少你不必再呆在黑暗中了.

归功于Jesse Skinner