有没有办法检查给出链接真的存在?

时间:2010-12-19 13:08:57

标签: javascript jquery hyperlink

例如,lalalalaal.com不存在。有没有办法使用JavaScript(可能用jQuery)来检查链接是否确实存在?

5 个答案:

答案 0 :(得分:8)

由于Same Origin Policy,必须涉及服务器 - 但它不一定必须是您的服务器。 : - )

您可以使用Yahoo等第三方服务为您执行代理操作,如下所述:"Using YQL as a proxy for cross-domain Ajax"。这显示了如何使用jQuery查询YQL的JSON-P和JSON-P-X接口以查找其他域的内容。

这篇文章并不复杂:

$.getJSON("http://query.yahooapis.com/v1/public/yql?"+
          "q=select%20*%20from%20html%20where%20url%3D%22"+
          encodeURIComponent(url)+
          "%22&format=xml'&callback=?",
  function(data){
    if(data.results[0]){
      container.html(data.results[0]);
    } else {
      var errormsg = '<p>Error: could not load the page.</p>';
      container.html(errormsg);
    }
  }
);

答案 1 :(得分:2)

没有,来自另一个域的响应将始终为null(此处same origin policy适用)。如果网站确实存在,你必须联系你自己的域并让它检查服务器端......但是单独的JavaScript不能这样做。

答案 2 :(得分:0)

不,没有。

为了确定网址是否存在,您必须向其发出请求,看看您是否收到回复。 same origin policy阻止在正常安全条件下在浏览器中运行的JavaScript读取来自不同主机的响应。

答案 3 :(得分:0)

出于安全原因(相同的域名政策),我认为你不能。

答案 4 :(得分:0)

使用AnyOrigin或我制作的FOSS克隆WhateverOrigin