jQuery检查外部链接
使用Javascript或jQuery,如何检查外部链接是否可用?
$.ajax()
调用不可用,因为它违反了SOP (与此处相同的问题)。 我已经阅读了有关JSONP的内容 ,但我想知道是否有更直接的解决方案,因为我不想从外部服务器加载任何数据; 我需要的只是检查它是否可以访问。
编辑(回答)
我用以下代码解决了它:
$.ajax({url: 'http://www.example.com', type: 'GET', dataType: 'jsonp', complete: function(jqXHR, textStatus) { console.log(jqXHR.status); // '200' = url reachable }, timeout: 2000 });
现在唯一的问题是我得到了一个Parse error
,但无论如何都可以检查外部链接是否正常工作。
您可以使用YQL通过其JSONP接口检查URL是否可用。
YQL控制台 。
您是否可以访问服务器端语言? 您可以使用AJAX调用本地文件,该文件使用PHP之类的东西来检查外部地址。
如果您需要有关PHP部分的帮助,请查看http://www.catswhocode.com/blog/amazing-things-to-do-with-php-and-curl
是的,在支持Flash的浏览器中,您可以使用此插件。 它与本机xhr具有相同的api。 此外,如果浏览器中没有Flash插件,您仍然可以访问其他域。 在某些浏览器中,如果您的目标域响应具有以下标头,则不会出现错误。
Access-Control-Allow-Methods: GET, POST, OPTIONS Access-Control-Allow-Credentials: true Access-Control-Allow-Origin: * Access-Control-Allow-Headers: Content-Type, *
用适当的域替换*。
以上所有技术仅适用于您控制的第二个域名。 如果没有,那么你必须使用代理,因为Jleagle说。