Size: a a a

JavaScript.Ninja

2020 July 31

П

Павел in JavaScript.Ninja
это цмска
источник

П

Павел in JavaScript.Ninja
ну все же может есть идеи в чем проблема?
источник

П

Павел in JavaScript.Ninja
Если я отправлю как есть, не как экземпляр класса FormData и без параметров contentType: false, processData: false,  то все прекрасно приходит
источник

🅅🄺

🅅aleriy 🄺obzar in JavaScript.Ninja
Павел
Ребята нужна помощь, пытаюсь отправить на сервер файл через ajax jquery.
let form_data = new FormData();
form_data.append('action', 'insurance_form_data');
form_data.append('form_data', data);

       $.ajax({
           url: '/wp-admin/admin-ajax.php',
           type: 'POST',
           // dataType: 'json',
           contentType: false,
           processData: false,
           data: form_data,
           success (res){
               // console.log(res);
           },
           error: function(xhr, status, error) {
               // console.log(error);
           }
       });
сервер на php
на сервере отображается таким образом
Array
(
   [action] => insurance_form_data
   [form_data] => [object Object]
)
form_data это объект в который собираются данные со всех полей, полей оч много, поэтому у объекта вложенность в несколько уровней, ну и вот это не могу нормально отправить на сервер вместе с файлами
может стоит праивльно указывать contentType?
источник

🅅🄺

🅅aleriy 🄺obzar in JavaScript.Ninja
и не плохо было бы видеть response/request headers тоже
источник

KB

Kostya Boyarchuk in JavaScript.Ninja
Illya Klymov
ну так мокните и триггерите
Илья, а если ни в window ни в global ResizeObserver’a нет ? Как его тогда можно замокать ?
источник

IK

Illya Klymov in JavaScript.Ninja
Kostya Boyarchuk
Илья, а если ни в window ни в global ResizeObserver’a нет ? Как его тогда можно замокать ?
Добавить
источник

KB

Kostya Boyarchuk in JavaScript.Ninja
Я видно туплю сильно. Если мне нужно протестировать что при изменении ширины контейнера вызывается обработчик это обсервера, как это можно сделать, если его банально нет.
источник

IK

Illya Klymov in JavaScript.Ninja
Kostya Boyarchuk
Я видно туплю сильно. Если мне нужно протестировать что при изменении ширины контейнера вызывается обработчик это обсервера, как это можно сделать, если его банально нет.
Прям перед тестом делаете global.ResizeObserver = и пошла реализация вашей фейковой имплементации
источник

IK

Illya Klymov in JavaScript.Ninja
Потом не забываете убрать в afterAll
источник

П

Павел in JavaScript.Ninja
🅅aleriy 🄺obzar
и не плохо было бы видеть response/request headers тоже
какой contentType стоит указать?
источник

П

Павел in JavaScript.Ninja
🅅aleriy 🄺obzar
и не плохо было бы видеть response/request headers тоже
источник

🅅🄺

🅅aleriy 🄺obzar in JavaScript.Ninja
Павел
какой contentType стоит указать?
application/json
источник

П

Павел in JavaScript.Ninja
если  contentType в объекте jquery отправлять что-то отлично от false то сервер в респонс выдает Status Code: 400 Bad Request
источник

🅅🄺

🅅aleriy 🄺obzar in JavaScript.Ninja
Павел
если  contentType в объекте jquery отправлять что-то отлично от false то сервер в респонс выдает Status Code: 400 Bad Request
я имею в виду с сервера должен content-type json прилетать
источник

🅅🄺

🅅aleriy 🄺obzar in JavaScript.Ninja
ты же показываешь response header с content-type: text, а ожидаешь с сервера json в то же время
источник

П

Павел in JavaScript.Ninja
сейчас установлю заголовки
источник

П

Павел in JavaScript.Ninja
как-то странно если я в jq устанавливаю contentType: 'application/json' то получаю 400 статус и в заголовках ответа Content-Type: text/html; charset=UTF-8

Если же в jquery ставлю contentType: false,
то ответ сервера 200 и Content-Type: application/json
(я уже на серваке установил заголовок 'Content-Type: application/json'
источник

OK

Oleh Kutsenko in JavaScript.Ninja
1. let form_data = new FormData(); - request не должен быть json точно, правильно будет "multipart/form-data"
2. cms должна по умолчанию такое сама понимать и парсить форм дату в пхп структуру
3. form data в form data некогда не проверял, но из за того что у вас не верные заголовки, то js делает конвертацию в обычный toString и возвращает [object Object] - такого быть не должно
4. в cms при формирование ответа должен быть механизм что бы сказать что response должен быть в формате application/json. Сейчас же у вас в response просто преобразование php массива к строке для отображения в консоль
источник

🅅🄺

🅅aleriy 🄺obzar in JavaScript.Ninja
Павел
как-то странно если я в jq устанавливаю contentType: 'application/json' то получаю 400 статус и в заголовках ответа Content-Type: text/html; charset=UTF-8

Если же в jquery ставлю contentType: false,
то ответ сервера 200 и Content-Type: application/json
(я уже на серваке установил заголовок 'Content-Type: application/json'
тип ожидаемого от сервера контента указывается в заголовке Accept: application/json
источник