如何使php请求报告失败

时间:2013-12-18 18:34:35

标签: php ajax post

我尝试使用php请求扫描目录中的文件。这是我现在的代码:

$.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";
    }
?>

问题是,请求总是成功返回,即使目录&#34; dirname&#34;不存在(它返回php目录未找到消息的文本)。如果找不到目录,如何让它返回错误?

2 个答案:

答案 0 :(得分:1)

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";
    }
}

答案 1 :(得分:0)

正如您所见hereerror条目仅适用于超时或404未找到的http错误。如果你想检查php脚本是否在内部失败,你可以使用php的方法header设置一个标头,或者你在成功函数中检查php脚本是否返回错误。希望有所帮助。