2013-01-11 71 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{ 
      //.... 
     } 
    }) 
相关问题