我從搜索機器中抓取一些(隨機)圖像並將它們顯示給用戶。問題是:可能發生某些圖像需要http認證(用戶名/密碼)。我不想擁有這些圖像......應該將它們刪除,而不顯示彈出窗口,您可以輸入用戶名和密碼。加載圖像並在需要驗證時移除
其實我正在使用簡單的jquery方法來顯示我的圖像。
var displayNode = ....
....
var m_img = $("<img />", {src : "...."});
m_img.bind('error', function (e) {
$(this).remove();
});
displayNode.append(m_img);
現在我直接加載圖像,如果發生錯誤,它將被刪除。但是,當服務器發回HTTP(基本)身份驗證標誌時,這當然不是錯誤。因此有一個輸入提示。當我點擊「取消」propmt關閉,jquery將其視爲錯誤並刪除圖像。
那麼..什麼是檢查是否有認證,如果不顯示給用戶的最好方法是什麼?
我試過使用HEAD,但也有一些問題。首先是跨域的問題(jQuery的跨域標誌)。 第二:如果服務器返回401響應,onload事件根本不會被觸發。解決方案可能如下所示:如果觸發了錯誤 - >刪除圖像。如果onload被觸發並且readystate是4 - >圖像可用並且可以加載。 – 2014-09-19 21:51:02
這對我來說似乎完全合理......只要它不觸發用戶名/密碼提示。 – pherris 2014-09-20 01:58:23