Ajax... Post... а выходит как Get

maroonorg

Новичок
Ajax... Post... а выходит как Get

Народ, выручайте. Есть код:

function send() {
var nickname = $("nickname").value;
var email = $("email").value;
var url = "submit/add.php";
var params = "nickname=" + encodeURI(nickname) + "&email=" + encodeURI(email);
request.open("POST", url, true);
request.onreadystatechange = updatePage;
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send(params);
}

Как видно из приведенного кода, данные посылаются POST запросом, но, при отправлке данных, они все равно отображаются как $_GET.
Вот пример того, что получается: http://localhost/guest_book/add.php?nickname=MaroonOrg&[email protected]
Почему так может быть?
 

maroonorg

Новичок
vasa_c
В адресной строке. Разве POST запрос должен передавать свои данные через адресную?
 

AmdY

Пью пиво
Команда форума
maroonorg, ты какую библиотечку для js юзаешь, может там уже реализована отсылка форм?
 

fast2111

Новичок
отображаются как $_GET
Отправляешь POST-запрос, а на сервере вcе это дело в $_GET[]...
У меня FireBug на "request.open("POST", url, true);" говорит что это POST-запрос.
Попробуй послать POST-запрос > GET-запроса, т.е. больше длины адресной строки и где все это окажеться в
$_GET или $_POST?

Интересно...
Как в AJAX формируют тело POST-запроса?
Наверно само тело и передают в заголовках POST-запроса... :)
В чем тогда разница если мы делаем request.open("POST", url, true) или request.open("GET", url, true)?
 

Pigmeich

Новичок
fast2111
Эта...
Выведи-ка из PHP-скрипта адрес по которому к нему обращались.
 

fast2111

Новичок
Я здесь причем. Ну все таки.
FireBub говорит:
POST http://localhost/..../check.php?type=1&...&account=4
params:
-type 1
-...
-account 4
post:
-пусто
response:
-2

В php имем конечно же
QUERY_STRING = "type=1&...&account=4"
REQUEST_METHOD = "POST"

А собстно тело POST запроса всетаки в загаловках ушло.
Так в чем разница GET и POST если мы делаем их через XMLHttpRequest?
 

sal

Новичок
Автор оригинала: fast2111
Отправляешь POST-запрос, а на сервере вcе это дело в $_GET[]...
У меня FireBug на "request.open("POST", url, true);" говорит что это POST-запрос.
Попробуй послать POST-запрос > GET-запроса, т.е. больше длины адресной строки и где все это окажеться в
$_GET или $_POST?

Интересно...
Как в AJAX формируют тело POST-запроса?
Наверно само тело и передают в заголовках POST-запроса... :)
В чем тогда разница если мы делаем request.open("POST", url, true) или request.open("GET", url, true)?
Ты сам понял, что сказал? Потому, что лично я, перечитав раз на пять твой текст, смысла не уловил! Можно как-то проще объяснить все?
 

fast2111

Новичок
Извеняюсь загнался...
Я совсем забыл про request.send(params), в своей задаче не использую, поэтому и сильно запутался в разнице GET и POST при использовании XMLHttpRequest...
Замолкаю.
 

Farsh

~ on ~ high ~ wave ~
Автор оригинала: fast2111
Так в чем разница GET и POST если мы делаем их через XMLHttpRequest?
В том что в гет ты не сможешь затолкать больше , чем 512 байт данных
 
Сверху