代码之家  ›  专栏  ›  技术社区  ›  morewry

Ajax、子域、200响应和图像-好吗?

  •  0
  • morewry  · 技术社区  · 13 年前

    这是一个非常相似的问题 AJAX, Subdomains and the 200 OK response (和) JavaScript Same Origin Policy - How does it apply to different subdomains? 但是有点扭曲。我的情况是:

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

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

    • 获取图像请求(使用jquery$.load())

    这个好像很管用 . 因为它工作得很好,当有人指出它在Firebug中产生错误时,我并没有立即想到相同的源策略。

    • 图像 在本地主机上加载(test.sd.example.com/cat/id的apache virtualhost url)

    然而,由于我所联系的那个问题,现在我想到了它,我担心它在生产中不能可靠地工作。

    • 会这样吗? 持续 在一个生产环境中工作——它是否能够跨浏览器可靠地工作?

    答:不——只是 就像它在工作一样;它不是真的

    • 如果没有,我该如何修复?(我不认为我可以jsonp图像……我可以吗?)

    答:继续设置图像的SRC&wait to show,直到触发加载事件。

    • 如果是,如何停止Firebug错误?如果可以的话。(他们在吓唬其他开发者。)

    回答:和上面一样——去掉实际执行获取图像文件请求的步骤。

    初始代码

    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
    
    2 回复  |  直到 13 年前
        1
  •  1
  •   dan_waterworth    13 年前

    为什么不通过创建图像元素和设置SRC将图像插入页面呢?什么更简单?

    编辑:…通过JavaScript

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

    img = $('<img>');
    img.attr('src', 'http://somewhere.com/some_image.jpg');
    $('#place_to_add').append(img);
    img.ready(fade_into_next);