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

假设服务器启用了 CORS 以允许跨域 Ajax,我将尝试加载图像,然后在图像加载失败时对同一资源执行 Ajax 提取。

或者,如果第二次传递给服务器是不可接受的,您可以获取资源,将其编码为 base 64(使用btoa)并显示来自data:URI的图像。然后,执行与此处相同的错误检查,并在图像失败的情况下返回原始 Ajax 结果。

于 2013-01-25T19:53:54.520 回答