2

Ajax が upload.php を呼び出し、upload.php がメッセージで成功または失敗を返すスキームを作成しようとしています。xhr.responseText がメッセージを受信することを期待して、php スクリプトで echo "successs" を使用してみました。ただし、代わりに 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);
}
4

1 に答える 1

0

次の使用を検討します。

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

ファイルのアップロードを行っているため、応答が生成されるまでに少し時間がかかります。この関数は、リクエストの状態が変化するたびに実行され、すべてが完了したときにのみレスポンスが返されます。

于 2012-11-06T04:17:32.187 に答える