2013-01-11 70 views
2

我試圖在我的網站上加載圖像,如果圖像生成失敗,我想顯示一條文本消息,說明它爲什麼失敗。最好的方法來做到這一點?檢測ajax響應的MIME類型

這是我試過的,但圖像數據顯然被解釋爲一個字符串。 (我在我的imgContainer中看到一堆亂碼)。

function GetImage(id) { 
    $.get('ajax/getImage', { Id: id }, function (data) { 
     if (typeof data == "string") { 
      $('div#imgContainer').html(data); 
     } else { 
      $('img#imgViewer').attr('src', data); 
     } 
    }); 
} 

編輯

看來我的錯誤是比較,你不能用圖像數據到src屬性,因爲我上面做的事情。從我可以告訴,你需要直接設置src到的鏈接,如:

$('div#imgContainer').html('<img src="ajax/getImage" />'); 

但是,這不會給你檢查的數據類型的選項。

+0

的[瀏覽器想對JSON Ajax響應的Content-Type頭,什麼可能重複? ](http://stackoverflow.com/questions/3002109/what-do-browsers-want-for-the-content-type-header-on-json-ajax-responses) –

回答

2

如果發生錯誤,您可以讓您的ajax調用返回內容類型「application/json」。喜歡的東西:

{"error": "something bad happened"} 

然後在你的回調,你可以檢查它是否是一個對象或字符串:

$.ajax('/some/url') 
    .done(function(response){ 
     if($.isPlainObject(response)){ 
      //.... 
     } 
     else{ 
      //.... 
     } 
    }) 
相關問題