Отправить данные через XMLHttpRequest
Доброго дня уважаемые коллеги. Помогите, пожалуйста, понять в чем проблема.
Хочу отправить данные с формы в php-файл посредством XMLHttpRequest. Хочу сделать отправку только на js. Сделал вот такой код: Все сериализируется и формируется строка, но, такое впечатление, что ничего не отправляется. Потому что ответ от php-файла такой: Undefined index: name in ... on line 2 {"blablabla":null} Подскажите пожалуйста, что я не так делаю. form.onsubmit = function(e){ var Data = serialize(this); var submitPath = document.getElementById('CallOrder').action ; var xhr = new XMLHttpRequest(); xhr.open("POST", submitPath, true); xhr.onreadystatechange = function() { if (this.readyState != 4) alert("Отправка данных завершена") ; console.log(xhr.responseText); if (this.status != 200) { alert("Данные не отправились") return; } console.log(xhr.responseText); } alert(Data) xhr.send(Data); e.preventDefault(); } Содержимое php файла: $a = $_POST['name']; echo json_encode(array("blablabla"=>$a)); П.С. До этого отправлял только через jquery. Захотел попробовать без него. |
Помогло: xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
Но теперь беда. Фильтр на аякс- запрос не пропускает дальше, может это из-за заголовка? if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { |
Часовой пояс GMT +3, время: 12:12. |