jQuery检查外部链接

时间:2012-02-08 09:10:01

标签: javascript jquery

使用Javascript或jQuery,如何检查外部链接是否可用?

$.ajax()电话无效,因为它违反了SOP(与here相同的问题)。我已经阅读了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,但无论如何都可以检查外部链接是否正常工作。

3 个答案:

答案 0 :(得分:2)

您可以使用YQL通过其JSONP界面检查网址是否可用。

YQL Console

答案 1 :(得分:1)

您是否可以访问服务器端语言?您可以使用AJAX来调用使用PHP之类的本地文件来检查外部地址。

如果您需要有关PHP部分的帮助,请查看http://www.catswhocode.com/blog/amazing-things-to-do-with-php-and-curl

答案 2 :(得分:1)

是的,在支持Flash的浏览器中,您可以使用this插件。它与本机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所说的那样使用代理。

相关问题