我试图写一个" fileExists" Javascript中的函数只是向服务器发送请求,如果发回404状态则返回false。
该功能运作正常,但我似乎无法取消我在Google Chrome控制台中收到的错误消息:GET /something/foobar 404 (Not Found)
。
有没有人知道解决这个问题的方法?
供参考,以下是我使用的代码:
var fileExists = function(url) {
var req = new XMLHttpRequest();
req.open('GET', url, false);
req.send();
return req.status === 200;
};
提前致谢!
答案 0 :(得分:5)
我认为没有办法阻止控制台声明加载资源失败。实际上并没有错。
然而,您可以更好地使用HEAD请求,而不是使用GET真正加载ressource。尝试
function fileExists(url) {
var req = new XMLHttpRequest();
req.open('HEAD', url, false);
req.send();
return req.status !== 404;
}
如果您确实想避免使用404状态,请在服务器上安装一个服务,以查询文件/路径是否可用。它始终返回具有200 OK状态的XML / JSON /文本响应,无论其包含true
还是false
。