非常にシンプルではありますが、これは奇妙なものです。jQuery Ajax配列が正しくシリアル化されません
コード:これはクロームネットワークインスペクタに巻き込まれ
var recipients = [];
recipients.push(uuid1);
recipients.push(uuid2);
$.ajax({
url: '/api-url/',
type: 'POST',
data: {'recipient': recipients, 'message': message, 'subject': subject},
dataType: 'json'
}) ...
:
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呼び出しの「受信者」、ネットワーク・インスペクタの「recipient」の2つのインスタンス、およびcのあるサーバーの1つの「recipient []」インスタンスデータは正しいですが、間違ったパラメータ名です。
「受信者[]」の「[]」はどのようになっていますか?
それはparamは配列を表す場合のparamに '[]'を追加するための標準です。いくつかのサーバー側言語/プラグインなどはこれを削除しますが、他のものは削除しません。あなたはそうでない人と働いているように見えます。あなたはjQueryの 'traditional'フラグを使いこなすか、自分でparam文字列を作るか、自分が持っているもので作業することができます。 –