jQuery .load()错误状态?

时间:2012-09-22 13:39:37

标签: javascript jquery

我似乎无法让这个解决方案适合我。

How to catch error in jQuery's load() method

这是我正在尝试的代码。

$("#a").load("load.html", function(responseText, textStatus, XMLHttpRequest) {
        if (textStatus == "error") { alert("fail"); }
        else { alert("success"); }
});

当load.html存在时,它可以正常工作,但是当它没有任何反应时。这是有道理的,因为如果它失败,它不应该进入回调。

有人可以指出我哪里出错吗?我试图让它在URL不存在时抛出错误。

如果这会影响任何事情,我正在尝试使用jQuery 1.3.2。

更新 问题似乎是因为我在本地而不是在服务器上工作。在线上传我的文件似乎工作正常,是否有部分jQuery需要服务器才能运行?

更新 做了一些测试并使用带错误回调的.load()不能脱机工作,但是.ajax()可以。感到困惑,但我们走了。

2 个答案:

答案 0 :(得分:1)

试试这个

$.ajax({

    url: 'load.html',
    dataType: 'html',
    success: function(data) {
         //handle data object containing the html
         $('#a').html(data);
    },
    error: function(xhr, error){
        //generic error callback, you'll end up here when your file doesnt exist
    }

});

答案 1 :(得分:0)

您可以在这里尝试:

<div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div>
<button>Get External Content</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

<script>
    $(document).ready(function(){
        $("button").click(function(){
            $("#div1").load("demo_tes.txt", function(responseTxt, statusTxt, xhr){
                if(statusTxt === "success")
                    alert("External content loaded successfully!");
                if(statusTxt === "error")
                    alert("Error: " + xhr.status + ": " + xhr.statusText);
            });
        });
    });
</script>