【发布时间】:2011-04-07 05:55:13
【问题描述】:
是否可以通过 jQuery(或纯 javascript)来测试另一个域上的网页是否可用? 我尝试使用 ajax 调用获取响应标头,但无论我测试我自己域之外的哪个站点,我都会收到错误消息。
那么我真的需要在我的服务器上使用代理脚本还是可以跳过该请求?
【问题讨论】:
标签: javascript jquery ajax http-headers
是否可以通过 jQuery(或纯 javascript)来测试另一个域上的网页是否可用? 我尝试使用 ajax 调用获取响应标头,但无论我测试我自己域之外的哪个站点,我都会收到错误消息。
那么我真的需要在我的服务器上使用代理脚本还是可以跳过该请求?
【问题讨论】:
标签: javascript jquery ajax http-headers
是否可以通过 jQuery(或纯 javascript)来测试另一个域上的网页是否可用?
由于same origin policy restriction,您需要在您的服务器上使用代理/网桥,除非远程服务器实现JSONP,显然我们不能假设一般情况。
【讨论】:
您可以创建一个<img> 标记,指向外部域上的现有图像。
如果onerror 事件触发,则图像甚至整个站点都将关闭。
如果它在 5 秒左右后触发,它可能会超时,因此整个站点可能会宕机。
【讨论】:
(or the image)的原因。
the site (or the image) is down,你应该写the image is down,因为这是我们可以做出的唯一客观结论(对于我的吹毛求疵:-))。跨度>
<script> 标签在这种情况下可以正常工作。它会在解析 HTML 而不是预期的 JS 时触发 SyntaxError,但不会调用 onerror,除非请求确实存在问题。坏消息是,在 IE 中它不起作用:onerror 永远不会被调用。在 Firefox 中,它工作得很好。另一个坏消息是,由于此解决方案的事件驱动性质,无法编写同步的isWorking(url) 函数。
是的,您需要在您的服务器上使用代理脚本。根据the same-origin policy,JavaScript 不能在浏览器中用于跨域请求资源。
【讨论】: