Строка URL меняется после возврата вызова ajax - PullRequest
0 голосов
/ 18 февраля 2019

Я боролся с проблемой в течение некоторого времени.Я не могу понять причину, как это происходит в конкретном случае, а не с другими.

У меня есть функция javascript, которая вызывает PHP-скрипт для загрузки файла на сервер (стандартный код, использовал его иработает совершенно нормально).

function upload_picture(fieldID, success, error) {

    var folderName;
    switch (fieldID) {
        case "pop_drawing":
            folderName = "pop_dwg";
            break;
        case "pop_installation":
            folderName = "pop_inst";
            break;
        case "pop_picture":
            folderName = "pop_pict";
            break;
    }

    var file_data = $('#' + fieldID).prop('files')[0];
    var form_data = new FormData();
    form_data.append('folder', folderName);
    form_data.append('file', file_data);
    $.ajax({
        url: 'dbh/upload.php',
        dataType: 'text',
        type: 'POST',
        cache: false,
        contentType: false,
        processData: false,
        data: form_data,
        success: function (response) {
            event.preventDefault();
            console.log (response); // display success response from the PHP script

            if (response.indexOf("yüklendi") > 0) {
                success();
            }
        },
        error: function (response) {
            event.preventDefault();
            console.log (response); // display success response from the PHP script
            error(response);
        }
    });
}

Функция вызывается из нескольких точек кода и работает нормально, за исключением одной точки.В этот конкретный момент при возврате он изменяет URL страницы с

http://localhost/pop/#

на

http://localhost/pop/?pop_drawing=&pop_installation=&pop_picture=Compelis-Logo.jpg&pop_need_special_prod=Hay%C4%B1r&pop_need_application=Hay%C4%B1r&pop_order_made=Evet&pop_approval=4&pop_cost_visible=Hay%C4%B1r#

по причине, по которой я могне понял.Эта строка в строке URL - это некоторые параметры на веб-странице, где я нажимаю кнопку для вызова функции.

Код, который вызывает функцию:

function uploadPopPicture () {

    if ($('#pop_picture_label').html() !== 'Seçili dosya yok...') {
        upload_picture('pop_picture', 
        function(){
            console.log('Görsel yüklendi...');
        }, 
        function(error){
            console.log('Error:', error);
        });
    }
}

Тот же код (очевидно,с другими параметрами) используется в других местах программы и работает нормально.

Любые идеи, которые я мог бы упустить.

Большое спасибо заранее

1 Ответ

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

Поведение кнопки по умолчанию - «отправить».Если вы не укажете какое-либо конкретное поведение, то это то, что он будет делать.Таким образом, при нажатии он отправит вашу форму, независимо от JavaScript.

Добавьте атрибут type="button" к кнопке HTML, и он не сможет автоматически отправлять форму.

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