0

我想使用 jquery、jstree 和 html 显示很多图像。所有图像名称都是这样的。

<node_id>-serverA_cpu.png
<node_id>-serverA_mem.png
<node_id>-serverB_cpu.png
<node_id>-serverB_mem.png

当我在外部创建图像时,我给它们一个名为 node_id 的唯一标识符,它与 jstree node_id 中的文本相同。当用户单击 jstree 上的节点时,我会显示以该节点 ID 开头的每个图像。当 Web 服务器和图像在同一台服务器上时,它运行良好。我这样做

var Img_CPU = "img/"+node_id+"-Server_cpu.png";
var Img_Mem = "img/"+node_id+"-Server_mem.png";

ETC

然后我使用 jquery 函数加载图像(如果存在)并获取它,如下所示:

$(function () 
{ 
    var myImage1 = new Image(); 
    $(myImage1).load(function () 
          {                   
        $("#div1").html(myImage1);      

          })  

          .attr('src', Img_CPU).error(function()
            {
        $('#div1').html("").css({"border": "", "margin": "0"});
           })
}); 

当图像与 IIS 位于同一台服务器上时,这一切都很好。如果我的图像位于可以通过 http 访问的另一台服务器上怎么办?如果图像位于单独的服务器上,如何获取图像?

4

1 回答 1

0

当图像在另一个域上时,您必须将图像 url 更改为绝对 url

var Img_CPU = "img/"+node_id+"-Server_cpu.png";
to
var Img_CPU = "http://anotherdomain.com/img/"+node_id+"-Server_cpu.png";

如果它仍然不起作用,那么我认为这是跨域策略(尽管这不适用于图像)

于 2012-08-02T15:11:13.923 回答