Я пробовал все, даже пытался отправить другие данные из моего кода в JavaScript и ничего не работает, PHP продолжает говорить мне, что $ _POST пуст, когда я пытаюсь file_get_contents("php://input")
, он также дает мне пустой массив или нуль или что-то еще. Я пытаюсь отправить это через JSON, я думаю, что это не совсем необходимо, но в любом случае, PHP ничего не получает, независимо от того, что я отправляю. Я проверил хром, чтобы узнать, отправляется ли что-то, и запрос POST регистрировался в сети, а полезная нагрузка запроса отображает данные, которые я пытаюсь отправить, но всякий раз, когда я открываю свою страницу PHP в своем браузере, она отображает нуль, Массив() или пустой. Я думал, что это может быть связано с UTF-8, но я так не думаю. Я пробовал это часами. Здесь должно быть что-то не так, что я не вижу.PHP не получает данные от AJAX
Вот мой Javascript код:
window.onload = function findSubmitButton() {
var button = document.querySelector(".send_info").addEventListener("click", serverInteraction);
}
function serverInteraction() {
var xmlhttp;
var inputArray;
var finalArray = [];
var JSONArray;
var userId;
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
throw new Error("Your Browser is not compatible with XMLHTTP");
return false;
}
inputArray = document.querySelectorAll("input[type=text]")
for(var i = 0; i < inputArray.length; i++){
finalArray[i] = inputArray[i].value;
}
console.log(finalArray);
JSONArray = JSON.stringify({finalArray: finalArray});
console.log(JSONArray);
xmlhttp.open("POST","phpFiles/sendUserInfo.php", true);
xmlhttp.setRequestHeader("Content-type","application/json;charset=UTF-8");
xmlhttp.send(JSONArray);
}
Это мой PHP сейчас:
<?php
$connection = oci_connect('User', 'password', 'localhost/dbXDB');
var_dump($_POST);
if(!$connection){
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
else {
echo "Connection Established";
}
?>
Пропустить материал подключения к базе данных, это довольно много нерелевантных, пока я не могу получить мои данные через. Я был бы очень признателен, если бы кто-то помог мне справиться с этим, это не может быть так сложно или сложно, как было, поскольку многие другие люди это делали раньше. Я действительно не могу понять, почему это не работает.
EDIT: Это то, что говорит мой журнал ответ:
{"finalArray":["1","2","3","4","5","6"]}Connection Established
Я вижу свою JSON прямо там, я не знаю, если это означает, что он работал. Журнал консоли все еще ничего не дал мне.
Вы открываете страницу phpFiles/sendUserInfo.php вручную, чтобы проверить var_dump? Когда вы отправляете POST в этот PHP-файл, вы не увидите вывод с кодом, который вы поставили, потому что POST происходит асинхронно. Вы не можете открыть страницу PHP вручную после того, как это произошло, и ожидайте увидеть опубликованные данные. Это то, что вы пробовали? – Drakes
Какой xmlhttp.responseText говорит ???? –
Я не уверен, что получаю то, что вы говорите. Если вы имеете в виду, что я открываю свой PHP-файл, открывая его в chrome, щелкнув его или что-то еще, и открыв его с помощью chrome, я этого не делаю. Я помещаю его на localhost с его именем каталога. Если это считается ручным открытием файла, я думаю, что я это делаю. Я получил консольный журнал для ответа, но он ничего не говорит, есть только белая строка. Я новичок в этом, и это не учит в колледже, я очень много изучал его, когда я ухожу. – Argus