по умолчанию POST
кодировка является multipart/form-data
, который состоит из плоской серии name=value
пара.
Ваша структура не может быть отображена непосредственно в плоскую серию из name=value
пар, потому что она сложная. У вас есть элемент, который является объектом, который имеет свойство, относящееся к массиву.
Если вы хотите отправить произвольно сложную структуру, вам нужно использовать другую кодировку и убедиться, что сервер понимает эту кодировку. Например, вы можете отправить JSON или XML на сервер, но вы должны сказать, что это то, что вы делаете, установив свойство contentType
на метод ajax
(который устанавливает тип данных, которые вы отправляете , чтобы сервер). Тогда ваш сервер должен понять, как десериализовать этот JSON или XML.
Слегка проверьте, чтобы ваша структура могла быть сопоставлена с плоской серией name=value
.
полпути дом, чтобы отправить данные в multipart/form-data
, но где вы отправить одну name=value
пару и имеют value
часть быть другая кодировка, например:
$.ajax({
url: ajaxUrl,
dataType: 'json',
type: 'POST',
data: {json: JSON.stringify(data)},
success: function(json){
}
});
Это посылает один name=value
пару с именем json
, где значение представляет собой строку в кодировке JSON. Ваша серверная сторона будет восстанавливать значение параметра json
обычным способом, а затем использовать десериализатор JSON для воссоздания графа объектов.
Эта техника в середине пути иногда удобна в рамках, что затрудняет использование чего-то другого, кроме стандартного кодирования запроса.
Это просто заставляет его посылать '' [object Object] "' как значение, вряд ли полезно. –