如何使php请求报告失败
我正在尝试使用php请求扫描目录中的文件。这是我现在的代码:如何使php请求报告失败,php,ajax,post,Php,Ajax,Post,我正在尝试使用php请求扫描目录中的文件。这是我现在的代码: $.ajax({ type: "POST", url: "scandir.php", data: { dirname: "./test" }, success: function( data ) { console.log( data ); } error: function() { console.log( "error" ); } })
$.ajax({
type: "POST",
url: "scandir.php",
data: { dirname: "./test" },
success: function( data ) {
console.log( data );
}
error: function() {
console.log( "error" );
}
});
scandir.php:
<?php
$dirname = $_POST[ "dirname" ];
$files = scandir( $dirname ) or die("Unable to scan directory " . $dirname );
foreach ( $files as $filename ) {
echo $filename . "\n";
}
?>
问题是,请求总是成功返回,即使目录“dirname”不存在(它返回php目录未找到消息的文本)。当找不到目录时,如何使其返回错误?如您所见,
错误
条目仅适用于超时或404未找到等http错误。如果要检查php脚本是否在内部失败,可以使用php的方法header
设置一个头,或者在success函数中检查php脚本是否返回错误。希望对您有所帮助。您得到的输出是什么?请在成功输入后添加一个逗号为什么不先检查目录是否存在,然后再使用scandir
?如果没有,您可以返回您想要的任何内容。我将标题文本编辑为更具体的标题(“HTTP/1.0 404目录未找到:”.$dirname)
if(!empty($_POST["dirname"])) {
$dirname = $_POST["dirname"];
if(!is_dir($dirname)) {
header('HTTP/1.0 404 Not Found');
exit;
}
foreach(scandir($dirname) as $filename) {
echo $filename . "\n";
}
}