2009-08-05 6 views
2

Existe-t-il un moyen de rediriger un utilisateur vers une page (page de connexion dans mon cas) lorsqu'une requête AJAX est effectuée par l'utilisateur sur un serveur? Le serveur est censé servir des données uniquement si la session est définie ou bien si l'utilisateur doit être redirigé. J'ai essayé d'envoyer une demande d'en-tête ("location: ...") mais le navigateur l'a manipulé comme une chaîne (xmlhttp.response) plutôt que d'agir dessus.Rediriger le navigateur à l'aide de AJAX

Répondre

2

Pas directement. Votre fonction de rappel devrait le gérer. Par exemple, si le serveur envoie le texte "LOGIN; /login.php;" puis votre dos d'appel onreadystatechange pourrait avoir l'extrait

if (xmlhttp.responseText.substring(0,6) == 'LOGIN;') { 
    window.location.href = xmlhttp.responseText.split(";")[1]; 
    return; 
} 

Si vous utilisez un cadre pour l'Ajax, ce code pourrait être selon rappel obtient le résultat de l'appel Ajax.

1

Dans la fonction de rappel, vous pouvez définir window.location sur la nouvelle page si la session n'est pas définie.

2

Non. Pas directement. Vous pouvez retourner quelque chose de spécial qui devrait être traité comme une redirection. Mais puisque le navigateur ne cherche pas à naviguer et il ne le fera pas.

+0

Je le ferai alors. Merci :) –

Questions connexes