我试图检查网页上是否存在某个网页。我不需要内容,只是想知道页面是否存在。
try {
jQuery.ajax(link, {
statusCode: {
404: function() {
jQuery("#moreInfo").html("not working");
},
200: function() {
jQuery("#moreInfo").html("<a href='" + link + "'>Technical Details</a>");
}
}
});
} catch (e) {
console.log(e);
}
我发现浏览器知道它是否得到了404响应,这是我需要知道的。
我已尝试在控制台中运行请求并找到以下内容:
Internet Explorer:在200响应中,IE 11提供错误代码0x2ef1
,而在404上则显示0x80070005
Chrome:404响应将以下内容添加到默认的无CORS标头响应:The response had HTTP status code 404
。
Firefox:如果启用了网络消息,则将状态代码记录到控制台 - [HTTP/1.1 404 NOT FOUND 6ms]
有没有办法在我的脚本中获取此信息并检查请求是否成功?或者有更好的方法来确定页面是否存在客户端?
答案 0 :(得分:1)
有没有办法在我的脚本中获取此信息并检查请求是否成功?
不使用客户端代码。
浏览器知道并且很乐意告诉用户浏览器,但是相同的源策略禁止它告诉您的JavaScript。
您必须使用服务器端代码执行此操作。
答案 1 :(得分:1)
如果您只是想检查页面是否存在,我们会在我们的地方使用。
function isValidURL(link) {
var encodedURL = encodeURIComponent(link);
var isValid = false;
$.ajax({
url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22" + encodedURL + "%22&format=json",
type: "get",
async: false,
dataType: "json",
success: function(data) {
isValid = data.query.results != null;
},
error: function(){
isValid = false;
}
});
return isValid;
}
如果它存在,那么函数将返回true,否则为false