PHP脚本从POST返回响应文本到AJAX?想要使用Ajax POST返回消息

时间:2012-11-06 04:07:50

标签: php javascript ajax xmlhttprequest responsetext

我正在尝试制定Ajax调用upload.php的方案,upload.php将在消息中返回成功或失败。我尝试在php脚本中使用echo“successs”,希望xhr.responseText会收到消息。但相反,alert(xhr.responseText)是一个空行。然后它发生在我身上,xhr.responseText只适用于GET而不是POST吗?如果是这样,我怎么能让它到PHP脚本可以返回自定义消息的位置?我不想使用HTTP状态代码...我宁愿学习如何做自定义消息。

请不要Jquery。

<?php
$tmp_name = $_FILES['file1']['tmp_name'];
$path = "/trunk";
$name = $path . DIRECTORY_SEPARATOR . $_FILES['file1']['name'];
$success = move_uploaded_file($tmp_name, $name);
if ($success) {
    echo "good";
} else {
    echo "bad";
}
?>
}

function uploadPHP() {
    var xhr = new XMLHttpRequest(),
       form = document.getElementById("uploadForm");

    xhr.open("POST", "php/upload.php", true);
    xhr.send(new FormData(form));
    alert(xhr.responseText);
}

1 个答案:

答案 0 :(得分:0)

我会考虑使用以下内容:

    xhr.onreadystatechange = function() {
        if(xhr.status==200 && xhr.readyState == 4) {
            alert(xhr.responseText);
        }
    }

由于您正在进行文件上传,因此响应将花费一些时间来生成。每次请求状态发生变化时,此函数都会运行,只有在完成所有操作后才会运行响应。