ajax 保存関数で複数のデータ配列を送信しようとしています。
各配列を個別に行うことができ、うまくいきますdata:hardwarePayload
。私がそうする{hardware: hardwarePayload, service:servicePayload}
と、非常に奇妙な JSON 出力が得られます。次のようになります。
hardware=%5B%7B%22hardwareName%22%3A%221%22%2C%22hardwareQuantity%22%3A%22%22%2C%22hardwareBYOD%22%3A%22%22%7D%5D&service=%5B%7B% 22serviceName%22%3A%223%22%2C%22serviceQuantity%22%3A%22%22%7D%5D
1 つのハードウェアと 1 つのサービスで 2 つのアレイが必要なので、それぞれを個別に取得できます。
私のコードは次のようになります..
self.save = function (form) { var hardwareModel = []; var serviceModel = []; ko.utils.arrayForEach(self.services(), function (service) { serviceModel.push(ko.toJS(service)); }); ko.utils.arrayForEach(self.hardwares(), function (hardware) { hardwareModel.push(ko.toJS(hardware)); }); //allModel.push({accountId: ko.toJS(account)}); var hardwarePayload = JSON.stringify(hardwareModel); var servicePayload = JSON.stringify(serviceModel); //alert(JSON.stringify(serviceModel) +JSON.stringify(allModel)); $.ajax({ url: '/orders/add', type: 'post', data: {hardware: hardwarePayload, service:servicePayload}, // data:hardwarePayload, contentType: 'application/json', success: function (result) { alert(result); } }); };