Отправляю данные на сервер через AJAX в рамках одного домена, но сервер ничего не получает.
js файл
var data = {
rating : result,
message : message
};
var request = new XMLHttpRequest();
request.open('POST', '/test.php', true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
request.send(data);
Отправка идёт по клику на элементе (не форма, не кнопка submit)
star[i].addEventListener('click', selectStar);
php файл
$data = $_POST["data"];
$data оказывается пустой
Интересно, что если подключаю jquery все работает
$.ajax({
type: 'POST',
url: '/test.php',
data: {data:data}
});
Пробовал:
Уже пару дней над этим сижу. Очень буду рад советам и помощи. Спасибо!
Отправьте так:
var data = 'rating=' + encodeURIComponent(result) +
'&message=' + encodeURIComponent(message);
var request = new XMLHttpRequest();
request.open('POST', '/test.php', true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send(data);
И проверьте что пришло:
var_dump($_POST);
Добро пожаловать на StackOverflow.
В варианте с XMLHttpRequest Вы отправляете
{"rating":123,"message":"aaa"},
а в коде с $.ajax - отправляете
{"data":{"rating":123,"message":"aaa"}}
Получайте значения на сервере вот так:
var data = {
rating : result,
message : message
};
...
request.send($.param(data));
...
$rating = $_POST["rating"];
$message = $_POST["message"];
или
var data = {
data: {
rating : result,
message : message
}
};
...
request.send($.param(data));
...
$data = $_POST["data"];
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости