Отправляю данные на сервер через 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"];
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Использую стандартный GridView::widgetПодскажите как в ActionColumn отобразить по условию в одной строке только просмотр ({view}), а в другой просмотр и удаление...
Проект saas-сервис типа мегапланаВ голове есть приблизительная структура классов, например: работа с БД, работа с задачами, сервисный класс...