2010-06-30 1 views
0

Voici la situation particulière: J'utilise un bookmarklet pour appeler un .js qui envoie une requête POST à ​​un fichier PHP sur mon serveur. Voici la requête POST dans le fichier .js:Comment puis-je tester si je vous envoie une demande POST correctement via Javascript?

Et voici ce que je fais en PHP. Mais essayer comme je pourrais, je ne peux pas comprendre comment obtenir quelque chose de retour au fichier .js afin qu'il puisse l'afficher dans une alerte (et par conséquent, donc je peux confirmer qu'il envoie les données en premier lieu).

<?php 

if ($_SERVER['REQUEST_METHOD'] != 'POST') { 
    echo "This page is not for viewing"; 
    exit; 
} 
$qo = $_POST["qu"]; 
$dl = $_POST["dl"]; 
$dt = $_POST["dt"]; 

echo "First parm: $qo, second param: $dl, third param: $dt"; 
?> 

En fin de compte que je veux prendre ces variables et les écrire dans une base de données MySQL, mais je suis au moins une journée loin d'apprendre comment faire ...

Toute aide à ce processus Soyez le bienvenu, j'ai eu beaucoup de temps à trouver quelque chose sur le traitement des requêtes POST qui ne sont pas envoyées par un formulaire utilisateur. Apparemment, écrire des bookmarklets qui envoient des données à MySQL est un art noir;)

Répondre

0

Pour tester que vous le faites correctement, j'utiliserais probablement Firebug sur Firefox ou Dev Tools sur Chrome; avec l'un ou l'autre, vous pouvez voir les données HTTP réelles envoyées ou reçues. Mais je pense que votre vraie question est la suivante: pourquoi le POST ne fonctionne-t-il pas? (Vous pourriez envisager de mettre à jour le titre de votre question.)

Et la réponse peut être que vous ne définissez pas le type de contenu. POST est générique, vous pouvez poster quoi que ce soit. Dans votre cas, vous publiez des données codées URL, essayez donc d'ajouter:

xr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 

... après votre appel open. Quelques exemples here et here.

+0

OK merci T.J., je vais essayer. En toute honnêteté, j'essaie de poser deux questions en une - je vais d'abord essayer d'utiliser Firebug pour voir si je peux confirmer les données envoyées, je ne savais pas que je pouvais le faire, et tester c'est la raison pour laquelle j'écrivais ce peu de PHP de toute façon. Si les données sont envoyées, alors je vais passer à essayer d'obtenir le fichier PHP à écrire dans la base de données. Et je vais ajouter le type de contenu au fichier .js. MERCI ps. excuses pour l'expletive ... ne s'est pas rendu compte que j'en avais un. –

+0

@Jason: Dans Firebug, c'est l'onglet "Net". Et pas de soucis à redire. Bienvenue à StackOverflow! –

Questions connexes