问题描述
我正在使用以下代码来确定网站上是否存在文件。 我正在检查较大的文件,因此不需要等待下载,只需知道它是否存在。 当我在IE(11.0.9600.17843)或Chrome(43.0.2357.134)上运行代码时,该文件返回true。 当我在Firefox(39.0)上运行它时,该文件返回null。
function checkUrl(url) {
var aborted = false;
try {
var request = new XMLHttpRequest();
var timer = Date.now();
request.onreadystatechange = function () {
if ((request.readyState > 1) & (request.status === 200)) {
aborted = true;
request.abort();
return true;
}
}
request.open('GET', url, false);
request.send();
if (request.status === 200) {
return true;
}
}
catch (e) {
console.log(e.message);
if (aborted) { return true; }
}
}
有什么想法为什么不能在Firefox上运行吗?
1楼
除了发出GET请求,您还可以发出HEAD请求。 HEAD请求将仅返回请求资源的标头,而不是正文,因此非常适合查询文件的存在。