【问题标题】:jQuery image url after redirect重定向后的jQuery图像网址
【发布时间】:2015-06-06 14:50:12
【问题描述】:

我有一个这样的脚本:

var img = $("<img />").attr('src', images[i]).load(function() {
      alert(this.src); // old url
})

有时服务器会抛出301 Moved Permanently302 Moved Temporarily HTTP 代码,实际加载的图像会有所不同。我该怎么做:

  • 检测是否发生了重定向
  • 找出新的网址 - this.src 不考虑重定向
  • 可能 阻止加载新网址

?

[编辑]
根据How to prevent ajax requests to follow redirects using jQuery,最后一个是不可能的。如何找到新网址?

【问题讨论】:

  • 在什么情况下你会得到重定向? “有时”是什么意思?你为什么不想跟随重定向?
  • @LutzHorn 项目背后的魔法无关,无法解决
  • 好的,但是你为什么不想跟随重定向?
  • @LutzHorn 重定向总是包含错误消息,不需要加载它。
  • 重定向不是错误,而是重定向。它包含一个Location 标头,IMO 客户端应遵循该标头。

标签: jquery


【解决方案1】:

您可以尝试使用 AJAX 请求获取状态,如下所示:

var img =  new Image();
$(img).load(
'someimage.png', 
function(response, status, xhr) {
    if (xhr.status == 200) {
        $('#img').attr('src','someimage.png')
    } else {
        //do something with xhr.status
    }
});

【讨论】:

  • 这个总是返回200,301/302代码是透明的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-13
  • 2013-03-09
  • 1970-01-01
  • 2019-03-17
  • 2010-11-29
  • 1970-01-01
相关资源
最近更新 更多