1

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);
        }
    });
};
4

2 に答える 2

1

これを試してみてください

var hardwarePayload = hardwareModel;
var servicePayload = serviceModel;

var postData = {'hardware': hardwarePayload, 'service':servicePayload};

var postData = JSON.stringify(postData);

alert(postData);

$.ajax({
    url: '/orders/add',
    type: 'post',
    data: postData,
    contentType: 'application/json',
    success: function (result) {
        alert(result);
    }
});
于 2013-03-21T05:02:28.140 に答える
0

データを文字列化しない方が良いと思います:

$.ajax({
    url: '/orders/add',
    type: 'post',
    data: {hardware: hardwareModel, service:serviceModel}, //            data:hardwarePayload,
    contentType: 'application/json',
    success: function (result) {
        alert(result);
    }
});

(文字列化されていないhardwareModelserviceModelを使用していることに注意してください)

このようにして、jQuery にリクエストの (json) データを処理させることができます。

于 2013-03-20T23:07:33.160 に答える