-1
Я использую файл backend.php
Ajax запрос JSON без JQuery
echo json_encode(array('post' => $_POST));
И Javascript для Ajax запроса:
function ajax_(requst) {
requst = requst || {};
var result = {};
(function() {
var xhttp = window.XMLHttpRequest ? new XMLHttpRequest() :
new ActiveXObject("Microsoft.XMLHTTP");
xhttp.onreadystatechange = function() {
if (xhttp.readyState === 4 && xhttp.status === 200) {
result = JSON.parse(xhttp.responseText);
//result = (xhttp.responseText);
} else {
result = {
error: 'status="'+xhttp.statusText+' ('+xhttp.status+')", state="'+xhttp.readyState+'"'
};
}
};
xhttp.open(requst.type || 'POST', 'backend.php', false);
xhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
//xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send(requst.data);
})();
return result;
}
А также запроса с помощью
console.log('before');
console.log(ajax_({
data: {
a: 1,
b: {
b1: [],
b2: {},
b3: 'b3'
}
}
}));
console.log('after');
Как добиться того, на консоли отображаются
before
Object { post: a: 1, b: {b1: [], b2: [], b3: 'b3'}
after
?
Проблема в том, что отправка json не работает. Работает только с json из задней части.
Мы должны были бы знать, что в '$ _POST', прежде чем мы могли бы попытаться разумный ответ. Пожалуйста, добавьте 'print_r ($ _ POST);' к вашему коду 'backend.php' и добавьте вывод к вашему вопросу. НЕ добавляйте его в качестве комментария, пожалуйста. – RiggsFolly