jquery ajax 图片流,显示PNG图片作为对jQuery AJAX请求的响应

本文探讨了如何通过jQuery AJAX请求加载PNG图像,并在HTML页面中正确显示。当直接调用Perl脚本时,图像能正常显示,但通过AJAX请求时会出现乱码。问题可能在于数据处理和响应类型设置。文中提供了包含AJAX调用的代码片段,以及讨论了两种潜在解决方案:一是修正AJAX请求以正确处理图像流,二是将图像保存到磁盘并提供URL给HTML。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

是否可以在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调用:

$(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(''%20+%20data%20+%20''); },

} );

在我的HTML文件中,有一个div class="div_imagetranscrits"用来填充我的图像。

我看不到我在做什么错。另一种解决方案是使我的脚本将映像写在磁盘上,然后获取要包含在src中以显示它的路径。但是我认为可以直接从AJAX请求中获取带有图像/

PNG标头的图像。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值