例如,lalalalaal.com
不存在。有没有办法使用JavaScript(可能用jQuery)来检查链接是否确实存在?
答案 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。