Ошибка AJAX: POST http://localhost/upload/undefined 404 (не найден) - PullRequest
0 голосов
/ 27 февраля 2019

Я искал в сети и тестировал в течение нескольких часов, но я не мог точно определить, в чем заключается ошибка.Итак, я ищу вашу любезную помощь здесь.Я следовал пошаговому руководству по загрузке нескольких файлов с помощью функции перетаскивания, но я получил сообщение об ошибке, как упомянуто в заголовке (и строка кода, которая выдает ошибку, называется xmlhttp.send (data);).Файл upload.js имеет эту функцию:

(function(o) {
    "use strict";

    var ajax, getFormData, setProgress;

    ajax = function(data) {
        var xmlhttp = new XMLHttpRequest();
        var uploaded;

        xmlhttp.addEventListener('readystatechange', function() {
            if (this.readyState === 4) {
                if(this.status === 200){
                    uploaded = JSON.parse(this.response);
                    if(typeof o.options.finished === 'function'){
                        o.options.finished(uploaded);
                    }   
                } else {
                    if(typeof o.options.error === 'function'){
                        o.options.error();
                    }
                }
            }
        });
        xmlhttp.open('post', o.options.processor);
        xmlhttp.send(data);
    };

    getFormData = function(source) {
        var data = new FormData();
        var i;

        for(i = 0; i < source.length; i = i + 1) {
            data.append('files[]', source[i]);
        }
        return data;
    };

    o.uploader = function(options) {
        o.options = options;
        if(o.options.files !== undefined) {
            ajax(getFormData(o.options.files));
        }
    };
}());

, а файл global.js имеет этот код:

(function() {
    "use strict";

    var dropZone = document.getElementById('drop-zone');
    var uploadsFinished = document.getElementById('uploads-finished');

    var startUpload = function(files) {
        app.uploader({
            files: files,
            Processor: 'upload.php',

            finished: function(data){
                var x;
                var uploadedElement;
                var uploadedAnchor;
                var uploadStatus;

                for (x = 0; x < data.length; x = x + 1) {
                    currFile = data[x];
                    uploadedElement = document.createElement('div');
                    uploadedElement.className = 'uploaded-console-upload';

                    uploadedAnchor = document.getElementById('a');
                    uploadedAnchor.textContent = currFile.name;

                    if(currFile.uploaded) {
                        uploadedAnchor.href = 'uploads/' + currFile.file;
                    }

                    uploadedStatus = document.createElement('span');
                    uploadedStatus.textContent = currFile.uploaded ? 'uploaded' : 'Failed';
                    uploadedElement.appendChild(uploadedAnchor);
                    uploadedElement.appendChild(uploadedStatus);
                    uploadsFinished.appendChild(uploadedElement);

                }

                uploadsFinished.className = '';
            },

            error: function() {
                //console.log('There was an error');
            }
        });
    };

    //Standard form upload
    document.getElementById('standard-upload').addEventListener('click', function(e) {
        var standardUploadFiles = document.getElementById('standard-upload-files').files;
        e.preventDefault();
        startUpload();

    });

    //Drop funtionality
    dropZone.ondrop = function(e){
        e.preventDefault();
        this.className = 'upload-console-drop';
        startUpload(e.dataTransfer.files);
    };

    dropZone.ondragover = function() {
        this.className = 'upload-console-drop drop';
        return false;
    };

    dropZone.ondragleave = function() {
        this.className = 'upload-console-drop';
        return false;
    };

}());

Любая помощь для решения этой проблемы будет принята с благодарностью.Спасибо.

1 Ответ

0 голосов
/ 27 февраля 2019

o.options.processor был определен как Processor, и когда он был позже отозван в коде, он упоминался как processor (изменяющийся с Processor на processor), разрешив случай.Спасибо вам, ребята, с вашими комментариями, которые помогли мне найти ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...