В вашем запросе есть несколько ошибок.Вы не можете POST данные без использования application/x-www-form-urlencoded
.Во-вторых, «Hello World!» Не экранируется и не присоединяется к переменной.
Ниже приведен код JavaScript для отправки данных POST на сервер.
var xhr = new XMLHttpRequest();
var params = 'x='+encodeURIComponent("Hello World!");
xhr.open("POST", 'example.php', true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-length", params.length);
xhr.setRequestHeader("Connection", "close");
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
alert(xhr.responseText);
}
}
xhr.send(params);
Вы можете получить к нему доступ с помощью $_POST['x']
в PHP.
В качестве альтернативы вы используете $_GET['x']
, используя следующий код.
var xhr = new XMLHttpRequest();
var params = encodeURIComponent("Hello World!");
xhr.open("GET", 'example.php?x='+params, true);
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
alert(xhr.responseText);
}
}
xhr.send(null);
GET больше соответствует идее использования Content-type: text/plain
.