2012-01-12 3 views
0

У меня проблема с получением и открытием изображения через AJAX. Если я позвоню на следующей странице:Использование AJAX и возврат изображения

http://127.0.0.1:8889/ex?sql=SELECT+Image+FROM+Persons+WHERE+Number+Like+%27%2501%27 

изображение выводится из поля двоичных объектов в IE8.

Теперь я хотел бы открыть это в div после того, как кто-то нажал клавишу (используя AJAX)?
Пытается использовать xhr.responseText не работает (я получаю сообщение об ошибке. Использование его в текстовом ответе работает). Поэтому мне кажется, что моя проблема - получить результат от запроса ajax.

Как я могу это сделать?

Некоторый код и сообщение об ошибке:

var picReturn = xhr.responseText; 

=> Не удалось продолжить из-за следующей ошибки: c00ce514

+0

Пожалуйста, пожалуйста, ** ПОЖАЛУЙСТА ** не говорите мне, что это на живом сайте? Что делать, если я ищу изображение 'DROP TABLE Person'? – Blender

+0

Как вы хотите: нет, это не так :) – Dinkheller

+0

Для менее головной боли позже используйте jQuery. – Blender

ответ

0

У вас есть три варианта:

  1. Поместите полученные данные в iframe. Не очень практично.
  2. Возьмите результат и поместите его в источник изображения в качестве данных: uri. Не поддерживается в старых браузерах и ограничено 32/64Kb в зависимости от браузера.
  3. Пропустите AJAX и напишите веб-сервис и используйте его в качестве своего URL-адреса. Это лучший вариант.

Вы не говорите, на каком языке вы используете серверную, но вы действительно хотите открыть веб-ответ, установите заголовок в «image/jpeg» и верните поток.

+0

Спасибо. Как я могу написать веб-сервис. У вас есть URL-адрес, где я могу читать, как начать? Серверная сторона позволяет отправлять несколько команд. Один из них - позвонить/blobfield? Sql = Выбрать * ... Можете ли вы объяснить веб-сервис немного больше? – Dinkheller

+0

Какой язык является бэкэнд? PHP? ASP.NET? Этот метод, который вы выделили, чрезвычайно опасен. –

+0

PHP - это бэкэнд. Пока что это не о безопасности. На первом этапе я хотел бы показать картинку. – Dinkheller

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