UIにjpeg画像を表示したいと思います。このために、私は私のサービス(GETメソッド)を要求し、私は64の塩基に変換:最後にAngular JS - 画像を取得するためのリクエスト
$http({
url: "...",
method: "GET",
headers: {'Content-Type': 'image/jpeg'}
}).then(function(dataImage){
var binary = '';
var responseText = dataImage.data;
var responseTextLen = dataImage.data.length;
for (var j = 0; j < responseTextLen; j+=1) {
binary += String.fromCharCode(responseText.charCodeAt(j) & 0xff)
}
base64Image = 'data:image/jpeg;base64,' + window.btoa(binary);
});
は、私のブラウザはイメージが破損または切り捨てられていることを私に伝えます。 は、だから私はoverrideMimeTypeを使用してのXMLHttpRequestを作成してみました( 'text/plainの;のcharset = X-ユーザ定義')と、それは動作します:
var xhr_object = new XMLHttpRequest();
xhr_object.overrideMimeType('text/plain; charset=x-user-defined');
xhr_object.open('GET', '...', false);
xhr_object.send(null);
if(xhr_object.status == 200){
var responseText = xhr_object.responseText;
var responseTextLen = responseText.length;
var binary = ''
for (var j = 0; j < responseTextLen; j+=1) {
binary += String.fromCharCode(responseText.charCodeAt(j) & 0xff)
}
base64Image = 'data:image/jpeg;base64,' + window.btoa(binary);
}
違いは何ですか?
'{responseType:" blob "}"でも、 'dataはインタフェースBlob'エラーを実装しています。 – Yasammez
ブラウザのインスペクタは何を言っていますか?クライアントによってブロックされたネットワーク要求はありますか? – Daan
これはついに私の問題を解決しました。普通の古いXHRとbtoa()を変換する必要はありません。 – Xinan