Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отправить данные через XMLHttpRequest (https://javascript.ru/forum/misc/53749-otpravit-dannye-cherez-xmlhttprequest.html)

Velidan 16.02.2015 17:49

Отправить данные через 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. Захотел попробовать без него.

Velidan 16.02.2015 18:43

Помогло: 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.