-
[AJAX] Ajax et cUrl
Bonsoir tout le monde,
j'ai un petit souci avec xmlhttprequest, j'ai cherch� pas mal de temps sans vraiment trouver de solution c'est pourquoi je m'en remet � vous...
Bref, je vous explique le concept je veux contacter un service distant via mon site web(php), j'ai donc pens� � utiliser la librairie cUrl qui me permet de contacter une page distante afin d'en r�cup�rer le contenu.
J'ai commenc� par coder un petit formulaire php pour utiliser ma solution, je n'ai rencontr� aucun probl�me, lorsque je submit le formulaire je r�cup�re bien la page. Apres �a j'ai voulu rendre plus "jolie" la chose et appeler mon script php via xmlhttprequest afin de r�cup�rer ma page. Malheureusement ici �a coince, le script php ne renvoie plus rien.
Bref un peu de code dans tout ca j'appelle mon script de cette mani�re
<code>
Script = "monscript.php";
Vars = "toto="+ window.document.getElementById("monId").value; //o� monId repr�sente l'id de la textbox
if(window.XMLHttpRequest) //Firefox";
{
Fd_Obj = new XMLHttpRequest();
}
else if(window.ActiveXObject) //Internet Explore
{
Fd_Obj = new ActiveXObject('Microsoft.XMLHTTP');
}
else
{
alert('Le navigateur ne supporte pas les objets XMLHttpRequest');
}
Fd_Obj.onreadystatechange = function(){
if(Fd_Obj.readyState == 4){
if(Fd_Obj.status == 200)
{
response = Fd_Obj.responseText;
window.document.getElementById('idDiv').innerHTML = response;
}
}
}
// c'est ce qui permet d'envoyer la requ�te xmlhttprequest avec les param�tres en POST
Fd_Obj.open("POST",Script,true);
Fd_Obj.setRequestHeader("Content-type","application/x-www-form-urlencoded");
Fd_Obj.setRequestHeader("Content-length",Vars.length);
Fd_Obj.setRequestHeader("Connection","close");
Fd_Obj.send(Vars);
</code>
Voil� comment j'appel le service distant avec curl
$ch = curl_init(Mon Url de destination);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); //$postfields un array contenant les variables � envoyer en post
curl_setopt($ch, CURLOPT_TIMEOUT, 1000); //ici j'ai mis un peu d'attente pour voir si ca changer quelque chose ^^
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300);//ici j'ai mis un peu d'attente pour voir si ca changer quelque chose ^^
$result = curl_exec($ch); //on execute
curl_close ($ch);
return $result ;
</code>
Someone can help me please ?