Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Почему мой POST-запрос AJAX не отправляет данные?
 
 автор: amigo63   (19.02.2009 в 12:29)   письмо автору
 
 

Всем доброго времени суток!
Есть вот такой код:

    function postContent(url,answer) {
     document.getElementById('message').style.display= 'inline';
     document.getElementById('message').innerHTML= 'Ждите.<br>';
     createRequest();
     request.open("POST", url, true);
     request.onreadystatechange = getAnswer;
     request.send("answer="+answer);
  }

Так вот, переменная $_POST['answer'] всегда остается пустой. С помощью alert(answer);
удалось усатновить, что переменная содержит корректные данные; видимо, не срабатывает request.send...
В чем дело, кто подскажет?

  Ответить  
 
 автор: sl1p   (19.02.2009 в 16:13)   письмо автору
 
   для: amigo63   (19.02.2009 в 12:29)
 

var request = createRequest();
так ибо наверное

  Ответить  
 
 автор: amigo63   (19.02.2009 в 16:21)   письмо автору
 
   для: sl1p   (19.02.2009 в 16:13)
 

Ну это есть конечно:) переменная создается уже в функции createRequest(). Перед этим кодом стоит такой же для GET

    function getContent(url) {
     document.getElementById('message').style.display= 'inline';
     document.getElementById('message').innerHTML= 'Ждите.<br>';
     url = url + "&dummy=" + new Date().getTime();
     createRequest();
     request.open("GET", url, true);
     request.onreadystatechange = updatePage;
     request.send(null);
  }

он отлично работает

  Ответить  
 
 автор: amigo63   (19.02.2009 в 21:24)   письмо автору
 
   для: amigo63   (19.02.2009 в 16:21)
 

Странное дело получается. при перехвате заголовков показывает
answer=123, т. е. отправляется как надо. Но до сервера не доходит - print_r($_POST); - пустой

  Ответить  
 
 автор: sl1p   (19.02.2009 в 23:03)   письмо автору
 
   для: amigo63   (19.02.2009 в 21:24)
 

как же он может быть не пустой если вы посылаете через GET?
print_r($_GET) - оно тут :)
а если шлёте через POST то нужно аяксом отправить соответствующие заголовки, тобишь:
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

  Ответить  
 
 автор: amigo63   (20.02.2009 в 10:13)   письмо автору
 
   для: sl1p   (19.02.2009 в 23:03)
 

    function postContent(url,ans) {
     document.getElementById('message').style.display= 'inline';
     document.getElementById('message').innerHTML= 'Ждите.<br>';
     createRequest();
     request.open("POST", url, true);
     request.onreadystatechange = getAnswer;
     request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
     request.send('answer='+ans);
  }

теперь в POST )) спасибо!!!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования