PNG-Bild als Antwort auf eine jQuery AJAX-Anfrage anzeigen

Ist es möglich, ein vom jQuery AJAX-Aufruf zurückgegebenes Bild im Hauptstream Ihres HTML-Codes anzuzeigen?

Ich habe ein Skript, das ein Bild mit einer Überschrift (Bild / PNG) zeichnet. Wenn ich es einfach im Browser aufrufe, wird das Bild angezeigt.

Aber wenn ich mit jQuery in diesem Skript einen AJAX-Aufruf mache, kann ich kein sauberes Bild anzeigen. Ich habe etwas mit vielen seltsamen Symbolen. Dies ist mein Skript, das das Bild mit einem Header (Bild / PNG) erstellt.

#!/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;

Dann habe ich mein Hauptskript mit einem AJAX-Aufruf drin:

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

In meiner HTML-Datei habe ich eine div mitclass="div_imagetranscrits" mit meinem Bild erfüllt sein.

Ich verstehe nicht, was ich falsch mache. Die andere Lösung besteht darin, dass mein Skript das Image auf die Festplatte schreibt und nur den Pfad in den src aufnimmt, um es anzuzeigen. Aber ich dachte, es wäre möglich, das Bild mit einem Bild- / PNG-Header direkt von einer AJAX-Anfrage zu erhalten.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage