【问题标题】:Use javascript to check http status codes使用 javascript 检查 http 状态码
【发布时间】:2011-12-20 05:33:42
【问题描述】:

我想仅为那些拥有图片集的用户显示来自 gravatar 的个人资料图片。做这个服务器端意味着向 gravatar 发出大约 100 个 HEAD 请求以检查 404 代码并为每个请求适当地输出 img 标签。

所以,我想实现一个javascript函数,我可以输出100个url,javascript可以检查http状态代码并动态输出适当的图像标签。这甚至可能吗?怎么样?

【问题讨论】:

  • 然而,你碰巧在 Javascript 中检索图像 URL 无疑会让你访问请求的状态代码。
  • 这就是问题所在。如何检索图像 URL 状态代码?跨域 Ajax?

标签: javascript


【解决方案1】:

您缺少的关键字是“状态代码”(这就是我们统称为 200、404、500 等的所有 HTTP 响应代码)。我假设您使用的是 jQuery,在这种情况下,您执行 AJAX 所需的所有文档都在 http://api.jquery.com/jQuery.ajax/

这是一个显示警报的请求的简单示例,但前提是返回 404 状态代码(几乎逐字取消上面的链接):

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
   $(function() {
      var url = "some_url";
      $.ajax(url,
      {
         statusCode: {
         404: function() {
            alert('page not found');
         }
      }
   });   
});
</script>

【讨论】:

  • 如果图像在您的域之外,您将看到:请求的资源上不存在“Access-Control-Allow-Origin”标头。
  • @elGEoRgETheKiLLa 有什么办法可以克服吗?我打算制作一个 javascript sn-p 来打开基于带有数字的基本 url 的顺序图像,然后双向进行。如果基本 url 是 xxx10.jpg,我想同时测试 xxx09.jpg 和 xxx9.jpg 以知道正确的一个并加载其余的(01、02、03... 或 1、2、3。 ..) 正确。
  • 这段代码实际上不是在给定的 URL 下载页面吗?有什么方法可以只检查响应状态,而不实际下载内容?
  • @Marc 是的,有办法。 HTTP 允许发送“HEAD”而不是“GET”,并且只返回标头(包括状态码)。我不确定是否可以使用 Javascript AJAX 库生成它。我从来没有做过:)
猜你喜欢
  • 2023-03-02
  • 2014-10-13
  • 1970-01-01
  • 2012-12-13
  • 2013-07-25
  • 2023-03-23
  • 1970-01-01
  • 2012-12-22
  • 1970-01-01
相关资源
最近更新 更多