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

标签 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);
}

最佳答案

我会考虑使用以下内容:

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

由于您正在上传文件,因此需要一些时间才能生成响应。每次请求状态更改时都会运行此函数,并且仅在一切完成时才发出响应。

关于PHP 脚本从 POST 返回 responseText 到 AJAX?想要使用 Ajax POST 返回消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13244221/

相关文章:

jquery - 在单独的表中呈现 Mysql 数据取决于值

php - 数据库切片密码的最后两个字符(?!)

ajax - 传输代理交换 2013 在线

php - 如何发送ANY操作数mysql

php - MySQL SELECT 查询只返回一行

javascript - 如何在 JavaScript 中以增量方式调用数组的 INDEX 值

javascript - 我不明白这段代码片段中 "(oldest.years || 0)"的用法

javascript - Node.js 中的 UTC 字符串

php - 如何在php中显示有限的单词

javascript - 获取多个多文件输入字段的文件计数