Отображение PNG-изображения в ответ на запрос jQuery AJAX

Можно ли отобразить изображение, возвращаемое вызовом jQuery AJAX, в основном потоке вашего HTML?

У меня есть скрипт, который рисует изображение с заголовком (изображение/PNG). Когда я просто вызываю его в браузере, отображается изображение.

Но когда я делаю вызов AJAX с помощью jQuery в этом сценарии, я не могу отобразить чистое изображение, у меня есть что-то с множеством странных символов. Это мой скрипт, который создает изображение с заголовком (изображение/PNG).

#!/usr/bin/perl 

use strict;
use CGI;
use Template;
use CGI::Carp qw(fatalsToBrowser);
use lib qw(lib);
use GD;

my $cgi    = new CGI;

my $id_projet            =  $cgi   -> param('id_projet') ;      # 

# Create a new image
my $image = new GD::Image(985,60) || die;
my $red =  $image->colorAllocate(255, 0, 0);
my $black =  $image->colorAllocate(0, 0, 0);

$image->rectangle(0,0,984,59,$black);
$image->string(gdSmallFont,2,10,"Hello $id_projet ",$black);
# Output the image to the browser

print $cgi -> header({-type => 'image/png',-expires => '1d'});

#binmode STDOUT;

print $image->png;

Затем у меня есть основной скрипт с вызовом AJAX внутри:

  <script type="text/javascript" > 

  $(document).ready( function() { 

  $.ajax({
  type: "POST",
  url:'get_image_probes_via_ajax.pl',
  contentType: "image/png",
  data: "id_projet=[% visual.projet.id %]",
  success: function(data){
  $('.div_imagetranscrits').html('<img src="' + data + '" />'); },
 } );

 </script>  

В моем файле HTML у меня есть один div с class="div_imagetranscrits", который нужно заполнить моим изображением.

Не вижу, что я делаю не так. Другое решение состоит в том, чтобы заставить мой скрипт записать изображение на диск и просто получить путь для включения в src для его отображения. Но я думал, что можно получить изображение с заголовком изображения/PNG непосредственно из запроса AJAX.

29
задан Dmitry Shvedov 15 March 2016 в 18:37
поделиться