2011-12-20 172 views
3

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

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

+0

但是,您碰巧在Javascript中检索图像URL无疑会让您访问请求的状态码。 – 2011-12-20 05:36:01

+0

这就是问题所在。如何检索图片网址状态代码?跨域Ajax? – 2011-12-20 06:10:06

回答

5

您缺少的关键字是“状态码”(这就是我们统称的所有HTTP响应代码200,404,500等)。我假设您使用的是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> 
+0

如果图片位于您的域名之外,您将看到: 否请求的资源上存在“Access-Control-Allow-Origin”标头。 – 2014-03-29 00:13:07

+0

@elGEoRgETheKiLLa有什么办法克服?我打算制作一个JavaScript代码片段来打开基于带有数字的基础URL的连续图像,然后转到两个方向。如果基本网址是xxx10.jpg,我想测试xxx09.jpg和xxx9.jpg以了解正确的网址,并加载其余网址(01,02,03 ...或1,2,3)。 ..)正确。 – DiegoDD 2016-01-03 04:36:48

+0

此代码是否实际下载给定网址的页面?有没有什么方法可以检查响应状态,而不需要实际下载内容? – Marc 2017-08-29 08:55:55