我尝试进行多个异步ajax调用,其中一个是从服务器请求base 64映像。如果我将base64图像的ajax请求设置为同步,它适用于IE,Chrome和Firefox。但是,对于异步的情况,图像每次都在IE中呈现,但偶尔也不会在Chrome和Firefox中呈现。有时它正在被渲染,有时则不是。 最重要的是,移动浏览器不会渲染图像。
代码非常简单,但我不知道它有什么问题。
function TestViewModel() {
var self = this;
self.Image = ko.observable();
self.GetProfileData = function () {
$.ajax({
async: true,
type: 'GET',
url: ..,
success: {
// return profile data
}
});
}
self.GetProfileImage = function() {
$.ajax({
async: true,
type: 'GET',
url: ..,
success(data): {
self.Image(data.Base64Image);
}
});
}
self.GetProfileData();
self.GetProfileImage();
}
ko.applyBindings(new TestViewModel());
<img data-bind="attr: { src: Image }" alt="ProfileImage" />
答案 0 :(得分:2)
我猜你应该使用内容类型前缀:
self.Image("data:image/x;base64," + data.Base64Image);