2017-02-21 2 views
0

Это может быть относительно простой ответ, и я могу просто серьезно его игнорировать.Чтение содержимого blob: http: // javascript

Im, использующий API, который упаковывает некоторые наши данные и отправляет его обратно мне в блобе. Он предоставляет URL-адрес, например, blob: http://localhost:3001/somenumber.

Я предполагаю, что этот URL-адрес является моим файлом? Когда я вручную удаляю этот URL-адрес в своем браузере, он загружает необходимый мне файл (просто базовый объект данных). Однако я не могу заставить этот файл выводить данные, поэтому я могу обработать его в моем клиентском коде/javascript. Я столкнулся с системой FileReader, но без успеха.

Любая помощь будет отличной. В принципе, я хочу взять этот blob-url, который предоставляет мне служба БД, и прочитать его содержимое, чтобы я мог выводить данные в представление.

Спасибо!

+0

Вы пытались использовать XMLHttpRequest? –

+0

Lol ... иногда вы просто должны смеяться над собой. Спасибо @lamelemon. Это было. –

ответ

1

Вы можете прочитать данные, как, что:

var req = new XMLHttpRequest(); 
req.open("GET", "http://localhost:3001/somenumber", true); 
req.responseType = "arraybuffer"; 

req.onreadystatechange = function(event) { 
    if (req.readyState == 4 && req.status == 200) { 
    var blob = new Blob([req.response], {type: "application/pdf"}); // or "image/png", or others... 
    var fileURL = URL.createObjectURL(blob); // Create a temp ULR to the data (pdf, image...) 
    location.href = fileURL; // switch location to this new URL 
    } 
}; 

Вы посмотрите на https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data может.

+0

Yup, им так глупо. Благодарю. Основной запрос на получение - это все, что было. Спасибо, ребята, @BNilsou. –

Смежные вопросы