我有一个WCF服务,它返回一个相当于位图图像的base64字符串。
return Convert.ToBase64String(ImgBytes);
我正在使用ajax来调用此服务。代码类似于。,
jQuery.ajax({
url: MY_SERVICE_URL,
type: "GET",
dataType: "html",
success: AjaxSucceeded,
error: AjaxFailed
});
function AjaxSucceeded(result, textStatus, request) {
var binary = "";
var responseText = request.responseText;
var responseTextLen = responseText.length;
for (i = 0; i < responseTextLen; i++) {
binary += String.fromCharCode(responseText.charCodeAt(i) & 255);
}
$("#myimage").attr("src", "data:image/jpg;base64," + btoa(binary));
}
但我无法看到任何图像。
我也尝试将dataType用作“text”。
我已经尝试打印我分配给img标签的src的数据。我使用了那些数据here,在那里我可以看到图像。
如果我硬编码响应值,我也可以查看图像,如。,
document.getElementById("myimage").src = "data:image/jpg;base64," + "Qk02EA4AAA...."
我试过搜索各种论坛。但不幸的是,我无法弄清楚这一点。我错过了什么吗?
提前致谢。
答案 0 :(得分:1)
如果您使用的是jquery,则应该像这样使用
$("#myimage").attr("src","data:image/jpg;base64," + "Qk02EA4AAA....")
答案 1 :(得分:0)
您还可以使用这个更短的代码段。
$.get(MY_SERVICE_URL, function (base64string) {
$("#myimage").attr("src", "data:image/jpg;base64," + base64string);
});
假设MY_SERVICE_URL
仅发送来自return Convert.ToBase64String(ImgBytes);
&gt;的确切结果/9j/4AAQSkZJRgABAQEASABIAAD/2wBD....
答案 2 :(得分:0)
谢谢大家的支持。我能够度过难关。
这就是我所做的。
jQuery.ajax({
url: MY_SERVICE_URL,
type: "GET",
dataType: "json",
success: AjaxSucceeded,
error: AjaxFailed
});
function AjaxSucceeded(response) {
$("#myimage").attr("src", "data:image/jpg;base64," + Response.GetCurrentFrameResult);
}