2009-09-08 10 views

Répondre

1

Put POST comme premier argument à xmlhttp.open() en supposant que vous utilisez pur javascript:

xmlhttp.open('POST', 'example.php', true); 
+1

ne dois-je pas ajouter d'autres choses? et où vont les paramètres? –

+0

Plus de détails (au moins un lien vers) aiderait sincèrement. En outre, toute indication de compatibilité entre les navigateurs. –

1

Vous pouvez le faire en utilisant jquery:

$.post("pageToPost.php", { firstParam: "Foo", secondParam: "Foo2" }, function(result){ 
alert("Response from pageToPost: " + result); 
}); 
+0

ce serait idéal si je n'utilisais pas jquery. –

+0

Considérez cela comme une option valide Jcubed. IMHO Jquery, comme d'autres frameworks javascript sont de bons wrappers pour une grande fonctionnalité et la résolution des problèmes de cross-browsing. – Sebastian

3

Depuis que je pense que vous utilisez l'objet XHR directement, vous pouvez faire une fonction « postRequest » facilement:

Nous avons besoin de la demande url, e les paramètres e à envoyer (params), et au moins deux fonctions de rappel success, qui reçoit le responseText comme premier argument lorsque la demande est achevée avec succès, et le rappel error, qui reçoit l'objet XHR et la texte d'état:

function postRequest (url, params, success, error) { 
    var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : 
            new XMLHttpRequest(); 
    xhr.open("POST", url, true); 
    xhr.onreadystatechange = function(){ 
    if (xhr.readyState == 4) { 
     if (xhr.status == 200) { 
     success(xhr.responseText); 
     } else { 
     error(xhr, xhr.status); 
     } 
    } 
    }; 
    xhr.send(params); 
} 
+0

@CMS: Votre ligne var xhr est défectueuse sur IE8/IE7 qui ont un support natif et ActiveX désactivé. L'ActiveX va lancer une erreur et il ignorera totalement le support natif. Pas bon car il pourrait encore faire un appel. C'est pourquoi il est important d'utiliser try catch que la plupart des bibliothèques ignorent. – epascarello

0

YUI connection manager serait également intéressant de jeter un oeil à comme une alternative à jQuery. En utilisant cela, vous pouvez effectuer une requête POST ajax comme suit:

YAHOO.util.Connect.asyncRequest('POST', 'php/post.php', callback, "new=1&old=2"); 
Questions connexes