2010-02-11 8 views
2

Que signifie post dans ce qui suit?POST ou GET dans XMLHttpRequest

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

parce que je ne suis pas en mesure d'accéder à des variables à l'aide de $_POST['var'] url mais avec $_REQUEST['var'] je peux accéder à la valeur ..

Répondre

1

Vous n'êtes pas en mesure d'accéder aux paramètres via $_POST parce que vous les ajoutez à la URL (ie ils peuvent être accessibles via $_GET) et ne pas les envoyer comme POST données. Si vous souhaitez envoyer les paramètres via POST, consultez la méthode send().

2

Lorsque vous lisez $_POST, vous devez transmettre vos arguments dans le corps HTTP au lieu d'utiliser la chaîne de requête.

Vous devez envoyer vos arguments comme dans l'exemple suivant:

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"); 
0

Le poste ne signifie les valeurs sont affichées, mais vous devez les ajouter en tant que variables de poste, alors que vous ne les ajoutez maintenant l'url de sorte que vous ne pouvez les obtenir avec $ _REQUEST et $ _GET.

0

Les données de poste sont généralement transmises via les données de publication.

IIRC, vous pouvez le passer en tant qu'objet via la méthode d'envoi.

ajaxRequest.send(requestString) 
1

POST est quelque chose inclus dans une requête HTTP (comme un XMLHTTPRequest).

Dans votre cas, vous ajoutez la chaîne de requête à l'URL, ce qui signifie qu'elle est transmise en tant que variable GET. Même s'il s'agit d'une requête post, PHP peut toujours accéder aux variables GET ajoutées en tant que chaîne de requête.

Basé sur votre code, je ne pense pas que vous dites à la demande quelles informations devraient être incluses dans la section POST de la demande, ce qui expliquerait pourquoi vous ne voyez rien avec $_POST['var'].

Mais puisque $_REQUEST['var'] recherche des variables de demande dans GET et POST et tous les cookies transmis dans la demande, vous voyez la variable telle qu'elle a été transmise via la chaîne de requête. Essayez l'écho $_GET['var'] et vous verrez que c'est de là que la variable obtient les données.

Si vous souhaitez utiliser POST dans le bon sens, vous ne devez pas pointer la requête vers une URL qui a une chaîne de requête et définir à la place cette chaîne de requête en tant que données de publication.