Есть сайт с формой. Данные заполненной формы попадают в эндпоинт, структура которого примерно такая:
{
key_1: "value 1",
key_2: "value 2",
key_3: 1,
key_4: [{key: "value"}, {key: "value"}]
}
На другом сайте мне нужно получить эти данные и сформировать их них другую форму, где каждый ключ эндпоинта - это label, а значение - textarea. В эти textarea можно вносить изменения данных, полученных из формы и сохранять на сервере, в том же эндпойнте.
Пытаюсь использовать вот такой запрос:
$.ajax({
method: 'PATCH',
url: url,
cache: false,
contentType: 'multipart/formdata',
processData: false,
data: dataToSend
}).fail((response) => {
console.log(response);
}).done(() => {
console.log('done!');
});
При таком подходе данные вроде уходят на сервер, но не сохраняются (соответствующие ключи эндпоинта не перезаписываются). Если в contentType поместить 'application/json', и dataToSend поместить в JSON.stringify() - то перезаписываются только строковые данные. Но если были изменены значения из массива
key_4: [{key: "value"}, {key: "value"}]
, то данные не перезаписываются и приходит 500 ошибка с сообщением message: "Array to string conversion", exception: "ErrorException". То есть, пока я пытаюсь отправить JSON с чисто строковыми значениями - все норм. Но если там появляется объект - то все накрывается)
Пробовал наполнять объект для отправки и через new FormData(), и просто через {} - ничего не работает.
Что я делаю не так, и как правильно?