Это странно, хотя это должно быть очень просто.jQuery Ajax Array неправильно сериализуется
Код:
var recipients = [];
recipients.push(uuid1);
recipients.push(uuid2);
$.ajax({
url: '/api-url/',
type: 'POST',
data: {'recipient': recipients, 'message': message, 'subject': subject},
dataType: 'json'
}) ...
Это поймана в инспекторе Chrome Network:
recipient[]:8b99fa41-0f8f-4882-b14f-dc258a765b15
recipient[]:add61999-9baa-4096-a92f-fbb144a4a981
subject:test
message:testtest
Это приходит на сервер:
{u'recipient[]': [u'8b99fa41-0f8f-4882-b14f-dc258a765b15', u'add61999-9baa-4096-a92f-fbb144a4a981'], u'message': [u'testtest'], u'subject': [u'test']}
Как вы можете видеть, мы имеем «получатель» в вызове ajax, два экземпляра «получателя []» в сетевом инспекторе и один «получатель []» на сервере с c orrect data, но неправильное имя параметра.
Любые идеи о том, как это '[]' в 'recipient []' попасть туда?
Это стандарт, чтобы добавить '[]' в пары, если пары представляет собой массив. Некоторые серверные языки/плагины и т. Д. Удаляют это, другие - нет. вы, кажется, работаете с тем, который этого не делает. Вы можете попробовать испортить флаг 'традиционный' jQuery, самостоятельно создать строку параметров или работать с тем, что у вас есть. –