【问题标题】:Retrieve HTTP Status Code from error() Event in JQuery image.从 JQuery 图像中的 error() 事件中检索 HTTP 状态代码。
【发布时间】:2013-03-26 14:35:04
【问题描述】:

我需要通过 Javascript 加载图像,但如果失败,请了解 404 和 500 错误之间的区别。

我有将图像加载到“img”标签中的代码,如下所示:

var img = $('<img />').attr('src', url)
    .load(function() {
        // Do something.
    })
    .error(function(ev) {
        // What sort of error?
    });

在 error() 函数中,我似乎无法判断错误是 500 还是 404。有什么办法吗?

【问题讨论】:

  • 我很惊讶.error 完全有效!它不应该。为什么 jQuery 关心您设置 src 属性与任何其他属性?它如何/为什么甚至能够挂钩页面上元素的 HTTP 请求?
  • 记录功能:api.jquery.com/error
  • 有趣!我不知道。

标签: javascript jquery


【解决方案1】:

像这样处理和测试http status page

DEMO

var img = $('<img />')
    .load(function() {
        // Do something.
    })
    .error(function(jqXHR, error, errorThrown) {  
       if(jqXHR.status&&jqXHR.status==404)
       {
            alert(jqXHR.responseText); 
       }
       else
       {
           alert("Something went wrong");
       }
    })
    .attr('src', url);

【讨论】:

  • 在 Chrome 中,jqXHR.status 似乎总是为空。因此,我似乎总是收到“出现问题”警报。
  • 我不会试验你的问题。这是一个例子:jsfiddle.net/UQTY2/38
  • 嗯……真奇怪。在 Mac OS X 上的 Chrome 上,小提琴对我不起作用。无论我将 URL 更改为什么,它都会显示“出了点问题”。
猜你喜欢
  • 2012-12-22
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
  • 2011-10-05
  • 2014-10-17
  • 2013-01-24
  • 2017-11-01
相关资源
最近更新 更多