php - 使用 Javascript 错误事件监听器检测失败与 PHP 在响应文本中返回 1

标签 php javascript error-handling xmlhttprequest addeventlistener

xhr.upload.addEventListener("error", failed, false) 与我的 $success = move_uploaded_file($tmp_name, $name); 有何不同if $(success) { echo "0"} else { echo "1"}?这是不必要的冗余吗?

function uploadPHP() {
    var xhr = new XMLHttpRequest();

    xhr.upload.addEventListener("progress", updateProgress, false);
    xhr.upload.addEventListener("load", complete, false);
    xhr.upload.addEventListener("error", failed, false);
    xhr.upload.addEventListener("abort", cancelled, false);

    var foo = document.getElementById("uploadScreen");
    var form = document.getElementById("uploadForm");
    var percentComplete;
    var index;

    xhr.onreadystatechange = function () {
        if (xhr.readyState == 1){
        }
--

    function cancelled() {
        //cancel
    }
}

本地主机 file_server # cat php/upload.php

<?php
//
//require_once('PhpConsole.php');
//PhpConsole::start();
$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 "0";
} else {
    echo "1";
}
?>

最佳答案

如果您的请求未通过(例如超时),则会发生

“错误”

假设您需要验证一些数据。如果它无效,则 "error" 事件不会发生,除非您在 PHP 中抛出未捕获的异常。相反,它只会返回一些指示值无效的数据,例如字符串 "0"

在您给定的示例中,move_uploaded_file 完全有可能失败,但错误处理程序不会触发,因为从技术上讲,请求已完成,没有发生任何意外事件。您想要采取的操作失败的唯一指示是“0”响应。

关于php - 使用 Javascript 错误事件监听器检测失败与 PHP 在响应文本中返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13443405/

相关文章:

android - 如何在RxJava2的错误返回中发出多个项目?

php - PHP无法连接到MongoDB套接字

php - 在 508 可访问应用程序中使用 Securimage 的 PHP 验证码脚本

javascript - 导航到javascript中的新网址,但强制重新加载?

javascript - Bootstrap 4 导航栏延迟清算

python-3.x - 通过可执行文件 (.exe) 运行程序时发生错误时如何保持命令行打开

php - 在 PHP 中使用 $row[$variable] 和 LEFT JOIN 时出现空结果

php - Dreamweaver 本地主机中 MySQL 到 PHP 连接错误

javascript - 使用 JavaScript API 监控 Office 2013 应用程序中传入的电子邮件

java - 转义序列无效(有效的是\b\t\n\f\r\"\'\\)