2011-05-09 1 views
1

J'essaie d'envoyer des données sur mon serveur de manière asynchrone en utilisant AJAX. Je dois envoyer les données en utilisant la méthode POST parce que les données envoyées sont assez beaucoup de caractères et en utilisant GET l'URL créée sera trop grande. Eh bien, ce n'est pas un problème, mais pour des raisons esthétiques, je préfère avoir de petites URL. Pour ce faire, j'ai utilisé la solution (question) expliqué here.Obtenir des données en utilisant POST et AJAX

Mon code Javascript envoyer les données est:

var code = "code=" + document.getElementById("code_area").value; 
    xmlhttp.open("POST", "run_code.php", true); 
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xmlhttp.send(code); 

Le code ci-dessus est exécuté lorsque je clique sur un bouton, mais l'URL change à ceci: localhost/code.php?code=datadatadatadatadatadatadatadatadatadatadatadatadatadata qui semble ne diffère pas d'utiliser à la place GET (mon L'URL est devenue assez grande). J'ai utilisé POST, pas GET mais les données semblent toujours être transmises par l'URL. Des idées pourquoi cela se passe-t-il?

Répondre

0

Le problème après tout était que j'utilisais un champ de saisie submit dans ma page HTML comme ceci:

<input type="submit" /> 

qui, lorsqu'il était utilisé, modifiait (actualisait) l'URL.

En utilisant:

<input type="button" /> 

le problème a été corrigé.

1

Vous pouvez le faire beaucoup plus facilement en utilisant jQuery.

$.post("run_code.php", { code: $("#code_area").val() }); 

Liens:

+0

@equality .. essayez avec jquery. les 4 lignes sont réduites à 1. – ariel

+0

Peut-être que le serveur émet une redirection et que vous n'avez pas de gestionnaire personnalisé pour la réponse, le navigateur exécute la redirection. Avez-vous essayé dans différents navigateurs? – ariel

+0

Quand vous dites "l'URL change", que voulez-vous dire? – ariel

0

Way plus facile avec jquery ...

$.post('yoururlhere.com/phppage', 
     {code:$("#code_area").val()}, 
     function(responseData){ 
      // responseData is the echo'd data set from your php page 
     }, 'json' 
); 

les données contenues dans {} sont les paires post KV

responseData est le jeu de données echo'd retour de php

Questions connexes