Je fais une demande de publication à la page getremote.php avec les données de publication, mais le tableau $ _POST semble être vide. Serait reconnaissant si quelqu'un peut me dire ce que j'ai mal fait.
Le code javascript pour faire la demande est
var postdata = "Content-Type: application/x-www-form-urlencoded\n\nedits=" + this.createEditXMLtext(this.editXMLstruct);
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
dispmes("processing edits");
xmlhttp.open("POST",userProfile.homeurl + "?remoteurl=" + userProfile.homeurl + "&cmdeditprofile&password=password",false);
xmlhttp.send(postdata);
var response = xmlhttp.responseXML;
où this.createEditXMLtext (this.editXMLstruct) crée simplement une chaîne
Je n'ai pas eu ce problème avant et ne semble pas avoir la même solution que les autres personnes qui ont signalé des problèmes similaires. Le code php à userProfile.homeurl + "est
header("Content-type: text/xml");
$query = '';
foreach($_POST as $key => $value){
$query .= "$key=$value&";
}
echo do_post_request($_GET['remoteurl'] . $qstring,$query);
mais la chaîne $ query est toujours vide - je l'ai vérifié en ajoutant echo $ query au fond du fichier
Êtes-vous sûr à 100% 'POST' est vide? Que fait un 'print_r ($ _ POST); –
Je suppose que les informations d'en-tête doivent être séparées du corps avec deux \ r \ n et pas seulement \ n. HTTP 1.1 spécification: générique message = ligne de départ * (message en-tête CRLF) CRLF [message-body] start ligne = ligne de demande | Status-Line CRLF = – DrDol
Vous devriez certainement envisager d'utiliser un framework javascript comme jQuery, Dojo ou YUI pour gérer vos requêtes AJAX. –