繁体   English   中英

jQuery检查外部链接

[英]jQuery check external link

使用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所说的代理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM