Форум программистов, компьютерный форум, киберфорум
Наши страницы
jQuery
Войти
Регистрация
Восстановить пароль
 
Jaroo
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 22
1

Встает колом AJAX

28.09.2017, 15:25. Просмотров 310. Ответов 6
Метки нет (Все метки)

Отправляю изображения на локальный сервер, через ajax. Файлы примерно больше 800 кб не передаются, запрос встает намертво. Виснет на beforeSend. Что это может быть? ограничение какое-то? попробовал изменить размер загружаемого файла в настройках php, увы, ни к чему это не привело.

Т.е в php части вставляю
PHP
1
var_dump($_POST);
и ничего не происходит. Значит где-то в скриптах...

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
$('body').on('submit', '.addCommentForm', function (event) {
        event.preventDefault();
        
        var formData = new FormData($(this)[0]);
        
        $.each(dataArray, function(index, file) {
            formData.append('name['+index+']', dataArray[index].name);
            formData.append('value['+index+']', dataArray[index].value);
        });
 
        if ($(this).hasClass('active') == false) {
            $.ajax({
                type: 'POST',
                dataType: 'json',
                url: 'index.php?route=post/post/addComment',
                data: formData,
                processData: false,
                contentType: false,
                beforeSend: function () {
                    $(".addCommentForm .btn-success").text("");
                    $(".addCommentForm .btn-success").blur();
                    $(".addCommentForm .btn-success").addClass("loading");
                },
                complete: function () {
                    $(".addCommentForm .btn-success").text("Отправить");
                    $(".addCommentForm .btn-success").removeClass("loading");
                },
                success: function (json) {
                    if (typeof (json['error']) != "undefined") {
                        if (json['error']) {
                            if (json['error']['comment']) {
                                swal('Ошибка', json['error']['comment'], 'error');
                                $(this).closest('form').addClass('has-error');
                            } else {
                                $(this).closest('form').removeClass('has-error');
                            }
                            if (json['error']['login']) {
                                swal('Ошибка', 'Для того, чтобы оставлять комментарии, необходимо авторизироваться на сайте', 'error');
                            }
                            if (json['error']['image']) {
                                swal('Ошибка', json['error']['image'], 'error');
                            }
                        }
                    }
                    if (json['success']) {
                        $('.PostComments').html(json['load']);
                        dataArray.length = 0;
                        //$('.PostComments').load('index.php?route=post/post/refresh .PostComments');
                    }
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
                }
            });
        }
    });
Добавлено через 19 часов 23 минуты
Если заменить строку
Javascript
1
var formData = new FormData($(this)[0]);
на
Javascript
1
var formData = new FormData();
то изображение передается большое. В чем проблема?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2017, 15:25
Ответы с готовыми решениями:

JS не встает правильно в сайт.
Вернулся я к разработке сайта, и сейчас мучаюсь с меню, нужно только его добить и будет основа....

После вставки ответа ajax в input запроса, ответ ajax не изменяется
Здравствуйте! В общем так, есть поле input, есть таблица с полем count. Задача: изменить...

Ajax загрузка формы из загруженного через ajax блока
Вообщем, через ajax в блок подгружается форма, из нее нужно загрузить в этот же блок др.контент....

Ajax запрос в div с уже 'прилетевшим' ajax'om
Добрый день, ребят... Не нашёл отдельного раздела по ajax, а разобраться очч надо, т.к.в JS полный...

Не встает (а если поставить из-под Windows, то вроде как встает, но не запускается) Ubuntu 10.10
Первая попытка взаимодействия с Linux. Уже два дня пытаюсь поставить. Когда пытаюсь поставить с...

6
Уф
678 / 636 / 395
Регистрация: 13.07.2015
Сообщений: 1,978
Завершенные тесты: 2
28.09.2017, 15:49 2
enctype указал?
HTML5
1
<form method="post" enctype="multipart/form-data">
0
Jaroo
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 22
28.09.2017, 16:09  [ТС] 3
Цитата Сообщение от Уф Посмотреть сообщение
enctype указал?
Конечно. Мелкие изображения до 800 кб передает, выше же которые или разрешение у которых больше, не понял толком, не отправляются и данные с формы так же, просто повисает запрос ajax, то что еще находится в beforeSend выполняется, дальше же нет. В чем конфликт не понимаю.

Добавлено через 14 минут
Только что проверил, в Internet Explorer'e все работает. А в Firefox'e зависает.
0
Уф
678 / 636 / 395
Регистрация: 13.07.2015
Сообщений: 1,978
Завершенные тесты: 2
28.09.2017, 21:15 4
Javascript
1
dataType: 'json',
может тип данных не тот? я вообще не указываю
Javascript
1
2
3
4
5
6
7
8
9
var formData = new FormData($('#filesform')[0]);
            console.log(formData);
            $.ajax({
                type: "POST",
                processData: false,  //вот эти параметры могут быть важны кстате
                contentType: false,  // вот эти параметры могу быть важны кстате
                url: "func/wh_upload.php",
                data:  formData
            }).done(function( data ) {
Добавлено через 58 секунд
и вместо success использую done, тк вроде бы с файлами у меня success не работал
0
Jaroo
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 22
29.09.2017, 05:57  [ТС] 5
Цитата Сообщение от Уф Посмотреть сообщение
может тип данных не тот? я вообще не указываю
Нет, все правильно. Если же я его не указываю, то ничего не меняется, кроме того, как не приходит ответ от сервера.
Цитата Сообщение от Уф Посмотреть сообщение
и вместо success использую done, тк вроде бы с файлами у меня success не работал
Хорошо, в интернетах пишут, что success - функция, которая будет вызвана в случае удачного завершения запроса к серверу.
Собственно, она не влияет на создание файла на сервере, так как все это выполняется в php коде.
Я уже сбросил все настройки firefox, удалил все расширения, и все безуспешно.

Добавлено через 14 минут
Дело в том, что ajax не отправляет данные в php файл
0
Уф
678 / 636 / 395
Регистрация: 13.07.2015
Сообщений: 1,978
Завершенные тесты: 2
29.09.2017, 13:09 6
эти опции пробовал приписывать?
Javascript
1
2
processData: false,
contentType: false,
0
Jaroo
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 22
29.09.2017, 13:18  [ТС] 7
Цитата Сообщение от Уф Посмотреть сообщение
эти опции пробовал приписывать?
processData: false,
contentType: false,
Если взглянуть на мой код еще раз, то можно заметить, что там есть эти строчки.
0
29.09.2017, 13:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2017, 13:18

Sony experia s встал колом
Ребятки помогите ... Подключил телефон к компу и увидел возможность обновления до последней версии,...

сма BOSCH WLX 16160 OE выдавала ошибку по движку, при входе в тест встала колом
День добрый! столкнулся с проблемой на Bosch maxx5 сма WLX 16160 OE сперва выдавала ошибку по...

Ul,li не встает над h2
Почему то ul li не встает над h2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru