Обработка изображений из XMLHttpRequest (с HTML и Javascript)

Я использую XMLHttpRequest для получения изображения с сервера (выполняется локально с стороннего сервера-апплета)

Ниже приведена упрощенная версия кода.

Изображение возвращается как JPEG, а возвращенный заголовок показывает «content-type = image / jpg». Я могу просматривать информацию через Firebug для Firefox.

Однако у меня есть ужасное время, чтобы показать фактическое изображение на веб-странице, потому что это данные изображения, возвращаемые с сервера, а не uri в местоположение изображения.

Каков правильный способ отображения этого изображения из возвращаемых данных? Должен ли я использовать или тег или тег ?

 function getXML(url, postData, requestStateChangeHandler){ if(window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {//Code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = requestStateChangeHandler; xmlhttp.open("POST", url, true); xmlhttp.setRequestHeader('Content-Type', 'text/xml'); xmlhttp.setRequestHeader('Cache-Control', 'no-cache'); xmlhttp.send(postData); } function requestStateChangeHandler(){ if (xmlhttp.readyState == 4) { if(xmlhttp.status == 200) { document.getElementById('results').innerHTML = xmlhttp.responseText; } else dump("Error loading page\n"); } } 

Вы можете использовать встроенные изображения

на стороне сервера закодируйте свой ответ в base64

в php use base64_encode("your data")
и в javascript

 result = document.getElementById('results'); result.innerHTML = ''; 

W3C работает над File API и XMLHttpRequest Level 2, чтобы обеспечить единый опыт использования Blob для вашего требования. Возможно, вам захочется выяснить, реализовал ли какой-либо существующий браузер эту функцию.

Похоже, что проще всего было бы создать локальную прокси-службу, к которой вы можете получить доступ через параметры GET и URL, а на задней панели он отправляет POST в исходную службу изображений, получает данные изображения обратно и передает это снова к вам. Затем вы просто поместите URL своего прокси (с параметрами) в атрибут img src.

  

Прокси на myproxy отправляет запрос на сервлет изображения соответственно.

Вам нужно использовать Ajax? Почему бы просто не добавить изображение в DOM? Когда я ввожу следующий код в мой отладчик в хром, он добавляет логотип PHP на текущую страницу:

 document.body.appendChild(document.createElement('img')).setAttribute('src', 'http://static.php.net/www.php.net/images/php.gif'); 

?