我正在托管我上传网站的apache服务器,但部署速度非常慢(而且它已经停机了一周)所以我喜欢在本地进行测试以进行开发。它依赖于外部文件,因此我在Google Chrome上使用--allow-file-access-from-files
标记,以便JavaScript正常运行。
我的问题是我想在新标签中打开之前检查文件是否存在,而我无法正常工作。我试过this回答,但是它使用了JQuery,我宁愿不使用它。在那个没有使用JQuery的SO问题中的回答在多个问题中是一个很受欢迎的问题,但它似乎并不适合我。我的想法是它对我不起作用,因为它创建了一个我认为不能访问本地文件的XMLHttpRequest()
。
我知道在正常情况下通过JavaScript执行此操作会违反安全性并且不允许,但自从我添加--allow-file-access-from-files
标记以来,我的测试从未出现任何问题。这可能不使用JQuery / ajax吗?
此代码目前适用于我,但它使用JQuery
$.ajax({
url:'test.pdf',
type:'HEAD',
error: function()
{
console.log("file doesn't exist");
},
success: function()
{
console.log("file exists");
}
});
虽然此代码不起作用,但使用vanilla JS
function UrlExists(url)
{
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status!=404;
}
if (UrlExists('test.pdf')) {
console.log("file exists");
}
else {
console.log("File doesn't exist");
}
文件test.pdf
不存在于正确的目录中。 JQuery代码输出"文件不存在"而JS代码则抛出错误。