在src标记中显示图像,响应文本不是base64

时间:2012-12-17 03:46:23

标签: ajax image jquery post

我有一个POST请求,它将图像作为gif返回。据我所知,响应不是base64编码的文本。那么如何将图像分配给img的src标签?

我说它不是base64编码的原因,因为我试图使用data:image/gif;base64,"+ data显示它,这没有给我任何结果。

然后我尝试使用jquery.base64插件编译repsonse(但是抱怨无效字符);

响应文本在fiddler中看起来像下面的“GIF87a ”,查看响应textview。图像视图显示图像正常。

我无法访问服务器以告诉它在base64中返回。

任何想法或帮助都会非常感激,也许它很简单我就错过了它。

提前致谢。

1 个答案:

答案 0 :(得分:1)

感谢@ xchg.ca的回答,我能够通过jquery ajax调用来做到这一点:

$.ajax({
  type: "GET",
  url: "imageURL",
  beforeSend: function (xhr) {
    xhr.overrideMimeType('text/plain; charset=x-user-defined');
  },
  success: function (result, textStatus, jqXHR) {       
    if(result.length < 1){
        alert("The thumbnail doesn't exist");
        $("#thumbnail").attr("src", "data:image/png;base64,");
        return
    }

    var binary = "";
    var responseText = jqXHR.responseText;
    var responseTextLen = responseText.length;

    for ( i = 0; i < responseTextLen; i++ ) {
        binary += String.fromCharCode(responseText.charCodeAt(i) & 255)
    }
    $("#thumbnail").attr("src", "data:image/png;base64,"+btoa(binary));
  },
  error: function(xhr, textStatus, errorThrown){
    alert("Error in getting document "+textStatus);
  } 
});
相关问题