0

我有一个 php 文件,path/renderer/renderImage.php用于构建并向浏览器返回 PNG 图像。当我使用浏览器导航到该 URL 时,它会在屏幕上转储正确的图像。但是,当我尝试使用以下来自 path/index.html 的代码使用 jQuery 将该图像加载到 DIV 中时...

<!DOCTYPE html>
<html>
    <head>
        <meta charset='utf-8'/>
        ....
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script src="../jquery.colorbox.js"></script>
        <script>
            $.colorbox({
                width:"30%", 
                inline:true, 
                href:"#inline_content",
                onClosed: function() {
                    $("#myPic").load('./renderer/renderPicture.php');
                    $('#myPic').css('display','inline');
                }
            });

它用奇怪的符号填充 DIV ......

在此处输入图像描述

这是目录结构的图片:

在此处输入图像描述

为什么浏览器在这两个页面上对图片的解释不同?什么可能导致差异?

4

2 回答 2

2

您正在获取符号而不是图像,因为您尝试发送二进制数据而不指定该数据是什么。

标题添加到您的renderPicture.php文件:

header('Content-Type: image/png');

它将返回所需的 png 图像。

干杯

于 2013-08-23T05:09:24.600 回答
1

jQuery .load方法将加载 TEXT/HTML 内容并将其插入到文档中。这正是您的情况所发生的,并且是预期的行为。

要通过 jQuery 加载图像,您可以使用:

$('<img src="./renderer/renderPicture.php">')

然后利用 .load (事件)做一些事情:

$('<img src="./renderer/renderPicture.php">').load(function() {
    $(this).appendTo('#myPic');
});

见这里:https ://stackoverflow.com/a/10863680/2327283

于 2013-08-23T05:12:52.810 回答