1

私はこの解決策を私のために働かせることができないようです。

jQuery の load() メソッドでエラーをキャッチする方法

これが私が試しているコードです。

$("#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()は機能します。理由はわかりませんが、ここまでです。

4

2 に答える 2

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
    }

});
于 2012-09-22T13:43:42.990 に答える
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>

于 2019-12-04T02:52:27.577 に答える