2015-10-15 81 views
1

我試圖進行多個異步ajax調用,其中之一是從服務器請求基礎64映像。它適用於IE,Chrome和Firefox,如果我設置ajax請求base64圖像同步。但是,對於異步的情況,圖像每次都在IE中呈現,但偶爾不會在Chrome和Firefox中呈現。有時它正在渲染,有時卻不是。 最重要的是,移動瀏覽器不會在ALL上渲染圖像。無法渲染由異步ajax調用的base64圖像

代碼很簡單,但我不知道它有什麼問題。

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

你能幫我正在返回的字符串,並將其放置在您的瀏覽器地址欄中,併成功地獲得圖像。 base64字符串本身可能有問題。代碼看起來正確 – QBM5

回答

2

我猜你應該使用內容類型的前綴:

self.Image("data:image/x;base64," + data.Base64Image);