如何使用Javascript/Ajax获取远程url的状态码,而不是使用jQuery
How to get status code of remote url using Javascript/Ajax but NOT using jQuery?
我试图检查一个url是否可达或不使用javascript而不使用jQuery或从该url加载图像的方法。如果我能得到那个url的状态码就太好了,因为我只关心状态码是200。
我已经尝试过XMLHttpRequest,但我了解到它不支持跨域调用。
请帮助。
谢谢。
如果没有XMLHttpRequest,直接在JavaScript中获取状态码是不可能的。正如所指出的,这通常只是同一域,尽管我知道有两种可能的跨域方法(不需要代理服务器):
- 某些客户端和服务器可以使用跨域资源共享和;
- 也有基于flash的"XHR"解决方案。
onload
事件来发现这一点。如果onload
事件在一定时间内没有触发,则可以断定请求超时或失败(4xx/5xx)。但是,这将在302等情况下返回假阳性。
只要确保浏览器确实尝试加载图像:一些更聪明的浏览器不会加载隐藏的图像,或者我听说过。
快乐编码。
我不确定这是如何"跨浏览器"的:
<script src="http://www.google.com" onerror="alert('error')"></script> <!-- Is Fine -->
<script src="http://www.notrealnotrealzz.com" onerror="alert('error')"></script> <!-- Alerts Error -->
这显然是一个黑客,但希望它能帮助。
更动态的版本:
var el = document.createElement('script');
el.onerror = errorFunction;
el.src = url;
document.body.appendChild(el);
使用服务器端语言创建一个服务器端脚本,让该脚本返回状态码。这个"代理"脚本将为您请求URL,因此不需要进行跨域请求。
关于Python响应代码脚本的示例,请参见这里:从URL获取HTTP响应代码的最佳方法是什么?希望有帮助,-Sunjay03
相关文章:
- 使用纯javascript而非jquery使所选选项卡处于活动状态并保持非活动状态
- jQuery中的状态管理是什么
- MVC和JQuery Mobile:单选按钮在发布时释放状态
- jQuery复选框被锁定为选中状态
- JQUERY-在没有悬停后将SRC更改回原来的状态
- 来自应用程序状态的Jquery数据表源
- 带Jquery的wep API,加载资源失败:服务器响应状态为404(未找到)
- jQuery隐藏元素在使用CSS显示时保持隐藏状态
- jQuery美国地图插件-为每个点击状态添加unique.html
- 在单击按钮时激活按钮的悬停状态,直到单击另一个按钮(Javascript/JQuery)
- 重置按钮在 jQuery 中的单击状态
- JQuery UI 1.11 将选项卡设置为活动状态
- 我将如何在jQuery中切换setInterval函数的状态
- 如何在 jquery 中的速率按钮下方显示消息状态
- 带有jquery.min.map的Ruby on Rails:未能加载资源状态406
- 设置jquery按钮,而不是php错误和成功状态
- jQuery成功,访问HTTP状态文本
- jQuery状态指示在web服务器上的文件
- 恢复旧的JQuery状态
- 最佳jQuery状态消息插件