0

这是一个与AJAX、子域和 200 OK 响应(以及JavaScript 同源策略 - 它如何应用于不同的子域? )非常相似的问题,但有所不同。我有一种情况:

  • 一个域(www.example.com)
  • 子域中的页面 (sd.example.com/cat/id)
  • 需要向另一个子域 (cdn.example.com) 发出 ajax 样式请求

与上述问题相反,我要求的是图像。

  • GET 图像请求(使用 jQuery $.load())

这似乎工作得很好。因为它工作得很好,当有人指出它在 Firebug 中产生错误时,我并没有立即想到同源策略。

  • 图像正在本地加载( test.sd.example.com/cat/id的 apache VirtualHost url)

但是,由于我链接的那个问题,现在它已经浮现在脑海,我担心这在生产中不会可靠地工作。

  • 这会在生产环境中继续工作吗?它会跨浏览器可靠地工作吗?

答案:不——它只是看起来像在工作;不是真的

  • 如果没有,我该如何解决?(我不认为我可以 JSONP 图像......我可以吗?)

答:继续设置图像的源代码并等待显示,直到触发加载事件。

  • 如果是这样,我该如何停止 Firebug 错误?如果我能。(他们吓坏了开发人员。)

答:同上——去掉实际对图像文件进行 GET 请求的步骤。

初始代码

function(imageUrl, placeTarget){
 var i = new Image();
 var img = $(i);
 img.hide()
 .load(imageUrl, function(e){
  // console.log("loadImage: loaded");
  placeTarget.attr("src", imageUrl);
  return true;
 })
 .error(function(){
  // error handling - do this part
  // console.log("loadImage: error");
  return false;
 });
 return;
} // loadImage
4

2 回答 2

1

为什么不通过创建图像元素并设置 src 来将图像插入到页面中。还有什么更简单的?

编辑:...通过javascript

我不确定这是否完全正确,但在 jquery 中:

img = $('<img>');
img.attr('src', 'http://somewhere.com/some_image.jpg');
$('#place_to_add').append(img);
img.ready(fade_into_next);
于 2010-11-19T14:23:54.613 回答
0

查看这篇文章:JavaScript 同源策略 - 它如何应用于不同的子域?

于 2010-11-19T14:22:40.860 回答