POST или GET в XMLHttpRequest - PullRequest
       3

POST или GET в XMLHttpRequest

2 голосов
/ 11 февраля 2010

Что означает сообщение в следующем?

ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("POST", "url" + queryString, true);

, потому что я не могу получить доступ к переменным, используя $_POST['var'] из URL, но с $_REQUEST['var'] я могу получить доступ к значению ..

Ответы [ 5 ]

2 голосов
/ 11 февраля 2010

Когда вы читаете из $_POST, вы должны передавать свои аргументы в теле HTTP вместо использования строки запроса.

Вам нужно будет отправить свои аргументы, как в следующем примере:

ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("POST", "your_service.php", true);
ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
ajaxRequest.send("var=100&another_var=200");
1 голос
/ 11 февраля 2010

POST - это то, что включено в HTTP-запрос (например, XMLHTTPRequest).

В вашем случае вы добавляете строку запроса к URL, что означает, что она передается как переменная GET. Даже если это пост-запрос, PHP все равно может получить доступ к любым переменным GET, добавленным в виде строки запроса.

Исходя из вашего кода, я не думаю, что вы сообщаете запросу, какая информация должна быть включена в раздел POST запроса, что объясняет, почему вы ничего не видите с $_POST['var'].

Но поскольку $_REQUEST['var'] ищет переменные запроса в GET и POST и все файлы cookie, передаваемые в запросе, вы видите переменную в том виде, как она была передана через строку запроса.

Попробуйте повторить $_GET['var'], и вы увидите, что именно отсюда переменная получает данные.

Если вы хотите правильно использовать POST, вам не нужно указывать запрос на URL-адрес, содержащий строку запроса, а вместо этого определять эту строку запроса в качестве данных публикации.

1 голос
/ 11 февраля 2010

Вы не можете получить доступ к параметрам через $_POST, потому что вы добавляете их к URL-адресу (то есть они могут быть доступны через $_GET) и не отправляете их как POST данные.

Если вы хотите отправить параметры через POST, взгляните на метод send().

0 голосов
/ 11 февраля 2010

Почтовые данные обычно передаются через почтовые данные.

IIRC, вы можете передать его как объект с помощью метода send.

ajaxRequest.send(requestString)
0 голосов
/ 11 февраля 2010

Публикация означает, что значения публикуются, но вы должны добавить их как переменные поста, в то время как теперь вы только добавляете их в URL, чтобы вы могли получить их только с $ _REQUEST и $ _GET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...