Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Lors de requête ajax, je perd soit ma session ou lors de l'exécution de celle ci je tombe sur une erreur 403.
Quelqu'un a t-il une idée?
Cordialement.
Julien
Dernière modification par jbunel (23-05-2009 16:15:22)
Hors ligne
Je suis perdu...
Je ne comprends pas pourquoi lors de ma première requête ajax j'ai un forbidden 403.
Après cela fonctionne mais plus de session.
Cordialement.
Julien Bunel
Hors ligne
est-ce que ta première requête ajax envois bien les header que tu a placé dans ta page car le session id est dans l'entête http
lors que tu ouvre ta page dans les header que tu reçois il y a l'id de session php
à chaque appel d'une autre page ton navigateur envois l'id en question
mais lorsque tu fais un appel ajax ce n'est plus ton navigateur qui fais l'appel mais l'objet XMLHttpRequest
il fait donc qu'il envoie lui aussi le session id au serveur pour qu'il soit reconnu par le serveur comme étant le client de cette session.
la plus part des lib le font automatiquement mais ce n'est pas le cas de toutes (certaines n'envoient par défaut aucun header)
A+JYT
Hors ligne
En effet je viens de faire une requête sans jQuery :
var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.onreadystatechange = function(){ if ( xhr.readyState == 4 ) { if ( xhr.status == 200 ) { //document.body.innerHTML = "My Name is: " + xhr.responseText; document.getElementById("idEmission").innerHTML = xhr.responseText; document.getElementById("idJour").innerHTML = ""; //document.getElementById("idEdition").innerHTML = ""; document.getElementById("information").display="none"; } else { document.body.innerHTML = "ERROR"; } } }; xhr.send(null); };
alors que ma fonction jquery
var saison = $('#idSaison').val(); var request = $.ajax({ type: 'get', url: 'http://tsf.nationale13.net/admin/ajax/selectemissions/format/html', data: "saison="+saison, success: function(data) { $("#idEmission").html(data); $("#idJour").html(""); $("#idEdition").html(""); $("#information").css("display", "none"); }, error: function(data, status){ console.log(data); console.log(status);} });
C'est elle qui me renvoi un forbidden pour ma première requête et qui me perd ma session.
Merci pour ta réponse sekaijin.
Serais tu comment résoudre ça ?
Je pensais que l'aide de vue AjaxContext s'occupais de mettre les headers appropriés.
Hors ligne
je ne sais pas avec jQuery
Hors ligne
Je n'ai pas encore trouver de solution pour passer les sessions avec jQuery. J'ai donc fais les requêtes Ajax "à l'ancienne" (sans librairie). Je devais finir mon projet actuel assez rapidement c'est pour cela que je n'ai pas pris le temps de chercher mais des que je trouve la solution, je la post.
Merci pour vos réponses.
Julien
Hors ligne
tu dois avoir un truc genre addHeader dans l'objet jQuery qui permet de faire de l'ajax
tu dois trouver le sessionId soit dans les cookies généralement phpsessionid (mais on peut le configurer sur le serveur) soir dans l'url si le navigateur n'accepte pas les cookies
Hors ligne
Pages: 1