0

javascript/jquery を使用して画像を非同期的にロードすると同時に、(エラーが発生した場合に) 返される xml ドキュメントを処理できる方法を探しています。

現時点では、次のように画像をロードします。

var img = $("<img id='ws-image'/>").attr('src', $("#dynImgUrl").val());

img.load(function() {
    if (!this.complete || typeof this.naturalWidth == "undefined"
                       || this.naturalWidth == 0) {
        alert('broken image!');
    } else {
        img.attr('width', 500);
        img.attr('height', 500);
        $("img-div").html(img);
    }
}).error(function() {
    alert("Could not load image");
});

これは、サーバーが画像を返す限り機能します。エラーが発生して xml ドキュメントが返された場合、エラー コールバックが呼び出されます。しかし、その xml ドキュメントのコンテンツを取得する必要があり、その方法がわかりません。

可能なサーバー応答の両方のタイプを処理できる方法はありますか?

ありがとうございました!

4

1 に答える 1

0

サーバーでクロスドメインAjaxを許可するCORSが有効になっていると仮定すると、イメージのロードを試み、イメージのロードが失敗した場合は同じリソースに対してAjaxフェッチを実行します。

または、サーバーへの2回目のパスが受け入れられない場合は、リソースのフェッチを実行し、base 64でエンコードして(を使用して)、 URIbtoaからの画像を表示できます。次に、ここで行うのと同じエラーチェックを実行し、イメージに障害が発生した場合に元のAjaxの結果を参照します。data:

于 2013-01-25T19:53:54.520 に答える