我在这里阅读了所有答案,但结果以某种方式告诉我错误的答案。即使它根本不存在,所有结果也会生成the file exists!
!所以这是代码:
function doesFileExist(urlToFile) {
var xhr = new XMLHttpRequest();
xhr.open('HEAD', urlToFile, false);
xhr.send();
if (xhr.status == "404") {
console.log("File doesn't exist");
return false;
} else {
console.log("File exists");
return true;
}
}
doesFileExist('/Framework/views/login/activate_studeasdfnt.php')
它输出:
文件存在
这是服务器文件夹结构:
答案 0 :(得分:1)
function doesFileExist(urlToFile)
{
var xhr = new XMLHttpRequest();
xhr.open('HEAD', urlToFile, false);
xhr.send();
if (xhr.readyState == 4 && xhr.status == 404 ) {
console.log("File doesn't exist");
return false;
} else {
console.log("File exists");
return true;
}
}
doesFileExist('/Framework/views/login/activate_studeasdfnt.php')
尝试一下。我已经测试过了很抱歉花了太长时间。另外,如果您的功能是测试文件是否存在,我建议您检查200响应。但这取决于你。
答案 1 :(得分:-1)
尝试检查它是否大于400
function doesFileExist(urlToFile)
{
var xhr = new XMLHttpRequest();
xhr.open('HEAD', urlToFile, false);
xhr.send();
if (xhr.status >=400 ) {
console.log("File doesn't exist");
return false;
} else {
console.log("File exists");
return true;
}
}
doesFileExist('/Framework/views/login/activate_studeasdfnt.php')
答案 2 :(得分:-1)
$('#activate_user_level').on('change', function(){
var user_level = $(this).val(),
content = $('#content'),
url = '/views/login/activate_'+ user_level +'.php';
$.ajax({
url : controllers('ActivatesController'),
method : 'POST',
data : {change_modal_content_activate : 1, url : url},
success : function(e){
console.log(e)
}
})
})
服务器
if(isset($_POST['change_modal_content_activate'])){
$url = dirname(__DIR__) . $init->post('url');
var_dump(file_exists($url));
}