Muestra la imagen PNG como respuesta a la solicitud jQuery AJAX.

¿Es posible mostrar una imagen devuelta por la llamada jQuery AJAX, en la secuencia principal de su HTML?

Tengo un script que dibuja una imagen con un encabezado (imagen / PNG). Cuando simplemente lo llamo en el navegador, se muestra la imagen.

Pero cuando hago una llamada AJAX con jQuery en este script, no puedo mostrar una imagen limpia, tengo algo con muchos símbolos extraños. Este es mi script que hace la imagen con un encabezado (imagen / 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;

Luego tengo mi script principal con una llamada AJAX dentro:

  <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>  

En mi archivo HTML tengo un div conclass="div_imagetranscrits" Para ser llenado con mi imagen.

No veo lo que estoy haciendo mal. La otra solución es hacer que mi script escriba la imagen en el disco y simplemente obtener la ruta que se incluirá en el src para mostrarla. Pero estaba pensando que era posible obtener la imagen con un encabezado de imagen / PNG directamente desde una solicitud AJAX.

Respuestas a la pregunta(3)

Su respuesta a la pregunta