Показать сообщение отдельно
  #1 (permalink)  
Старый 24.04.2019, 07:47
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Помогите дописать функцию, чтобы ajax запрос не возвращал [object Object]
Добрый день. Имеется массив такой структуры:
var a = [];
a['operationName'][0] = {'operation': 1 , 'name': 2, 'time': 3};
a['pf1'] = 1;
a['pf2'] = 2;
};


Есть функция для отправки post запроса. Ее вроде как нужно доделать чтобы можно было отправить такой массив.
function postAjax(url, data, success) {
    var token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
    var params = typeof data == 'string' ? data : Object.keys(data).map(
            function(k){ return encodeURIComponent(k) + '=' + encodeURIComponent(data[k]) }
        ).join('&');
 
    var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    xhr.open('POST', url);
    xhr.onreadystatechange = function() {
        if (xhr.readyState>3 && xhr.status==200) { success(xhr.responseText); }
        if (xhr.status==500) { console.log(xhr.responseText); }
    };
    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.setRequestHeader('X-CSRF-Token', token);
    xhr.send(params);
    return xhr;
}


Если я просто отправлю свой массив в php таким образом:
postAjax('index.php?r=post/insert-check-list', a, function(data){
      var json = JSON.parse(data);
      console.log(json);
});


То вернется такой ответ:
operationName: "[object Object]"
pf1: "1"
pf2: "2"


В php происходит просто:
public function actionInsertCheckList(){
        $result = $_POST;
        return json_encode($result);
}

Подскажите пожалуйста что делаю не так?
Ответить с цитированием