JQuery AJAX вызов удаляет пустой массив

Я пишу AJAX-вызов в jQuery, и этот вызов вызывает две функции, показанные ниже:

_remove: function(){
    if (confirm('Are you certain you wish to permanantly remove item from this device?')){ 
    var response = $conn.ajax({
        url: "api_url",
        async: true,
        method: "POST",
        data: this._getPayload(),
        processData: false,
        contentType: false,
    })
    .then(response => {
        return response;
    });
    }
  }



  _getPayload: function(){
    var formData = new FormData();
    formData.append('i_host[id]', refId);
    formData.append("i_host[ipv4addrs][][del][]", "xx.x.xxx.xxx");
    return formData;
  }
});

Я могу звонить в почтальоне с удачным набором параметров:

i_host[id] = refId
i_host[ipv4addrs][][del][] = xx.x.xxx.xxx

также объект JSON для параметров выглядит следующим образом:

"parameters": {
        "i_host": {
            "id": "refId",
            "ipv4addrs": [
                {
                    "del": [
                        "xx.x.xxx.xxx"
                    ]
                }
            ]
        }
    }

Однако проблема, кажется, возникает, когда я делаю вызов jQuery для обновления API, мои журналы, кажется, принимают правильный набор параметров, а затем выдают ошибку с неправильным набором параметров (похоже, ipv4addrs принимается как массив объектов, а затем выдает ошибки как один объект). Кажется, что первый пустой массив удаляется из вызова.

Любая помощь с двумя функциями была бы отличной. Или любой вклад в то, как сделать вызов ajax, также будет очень полезным. Журналы ниже:

[DEBU|#   28|2018-08-08 14:56:44] : {"target"=>"update", "object"=>"i_hosts", "controller"=>"api", "i_host"=>{"id"=>"refId", "ipv4addrs"=>[{"del"=>["xx.x.xxx.xxx"]}]}, "action"=>"autoproxy"}
[DEBU|#   28|2018-08-08 14:56:44] : /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
[DEBU|#   28|2018-08-08 14:56:44] : {"i_host"=>{"id"=>"refId", "ipv4addrs"=> [{"del"=>["xx.x.xxx.xxx"]}]}}
[DEBU|#   28|2018-08-08 14:56:44] : =========================================================================================
[DEBU|#   28|2018-08-08 14:56:45] : =========================================================================================
[DEBU|#   28|2018-08-08 14:56:45] : {"response":{"status":false,"message":"Please check the errors array for detailed information on why your request failed to complete!","errors":[{"messages":["The passed value does not meet the mininum required standards"],"parameters":{}}],"data":{},"parameters":{"i_host":{"id":"refId","ipv4addrs":{"del":["xx.x.xxx.xxx"]}}}}}
[DEBU|#   28|2018-08-08 14:56:45] : =========================================================================================

1 ответ

Ajax не поддерживает пустые массивы:(

Другие вопросы по тегам