是否可以在 HTML 的主流中显示由 jQuery AJAX 调用返回的图像?
我有一个脚本可以绘制带有标题的图像(图像/PNG)。当我在浏览器中简单地调用它时,就会显示图像。
但是当我在这个脚本上使用 jQuery 进行 AJAX 调用时,我无法显示干净的图像,我有很多奇怪的符号。这是我的脚本,它使图像带有标题(图像/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 文件中,我有一个class="div_imagetranscrits"
要填充我的图像的 div。
我看不出我做错了什么。另一种解决方案是让我的脚本将图像写入磁盘并获取包含在 src 中的路径以显示它。但我认为可以直接从 AJAX 请求中获取带有图像/PNG 标头的图像。