За последние 24 часа нас посетили 22445 программистов и 1066 роботов. Сейчас ищут 657 программистов ...

Помогите дописать функцию, чтобы объект не возвращал [object Object]

Тема в разделе "JavaScript и AJAX", создана пользователем Artur_hopf, 23 апр 2019.

  1. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Добрый день. Имеется объект такой структуры:
    Код (Javascript):
    1. var a = [];
    2. a['operationName'][0] = {'operation': 1 , 'name': 2, 'time': 3};
    3. a['pf1'] = 1;
    4. a['pf2'] = 2;
    5. };
    Есть функция для отправки post запроса. Ее вроде как нужно доделать чтобы можно было отправить такой массив.
    Код (Javascript):
    1. function postAjax(url, data, success) {
    2.     var token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
    3.     var params = typeof data == 'string' ? data : Object.keys(data).map(
    4.             function(k){ return encodeURIComponent(k) + '=' + encodeURIComponent(data[k]) }
    5.         ).join('&');
    6.  
    7.     var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    8.     xhr.open('POST', url);
    9.     xhr.onreadystatechange = function() {
    10.         if (xhr.readyState>3 && xhr.status==200) { success(xhr.responseText); }
    11.         if (xhr.status==500) { console.log(xhr.responseText); }
    12.     };
    13.     xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    14.     xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    15.     xhr.setRequestHeader('X-CSRF-Token', token);
    16.     xhr.send(params);
    17.     return xhr;
    18. }
    Если я просто отправлю свой массив в php таким образом:
    Код (Javascript):
    1. postAjax('index.php?r=post/insert-check-list', a, function(data){
    2.       var json = JSON.parse(data);
    3.       console.log(json);
    4. });
    То вернется такой ответ:
    Код (Javascript):
    1. operationName: "[object Object]"
    2. pf1: "1"
    3. pf2: "2"
    В php происходит просто:
    PHP:
    1. public function actionInsertCheckList(){
    2.         $result = ModelCheckList::insertCheckList();
    3.         return json_encode($result);
    4. }
    Подскажите как исправить функцию postAjax, если дело в ней конечно.