我正在尝试制定一个方案,其中 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/