我使用以下代码来确定站点上是否存在文件。我正在检查大文件,所以我不需要等待它下载,我只需要知道它是否存在。当我在 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 上运行吗?
最佳答案
您可以只发出 HEAD 请求,而不是发出 GET 请求。 HEAD 请求只会返回所请求资源的 header ,而不返回正文,因此非常适合查询文件是否存在。
关于用于验证 URL 的 Javascript 代码在 IE 和 Chrome 中有效,但在 Firefox 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31463480/