Voici les détails pour reproduire l'anomalie.
Se rendre sur : https://responsive.knowledgeplaces.com
Se connecter avec l'identifiant et le mot de passe : aweb01
C'est un site WordPress de test et c'est un compte abonné donc pas de problème.
Une fois connecté, vous verrez une page avec différents boutons qui sont utilisés pour des tests.
Par exemple, en cliquant sur le bouton “no lpId parameter”, un message d'erreur sera affiché.
Tous ces boutons déclenchent des appels AJAX sur mon site WordPress, et sur le serveur, je renvoie une chaîne JSON qui permet d'afficher un message d'erreur si une validation n'a pas été satisfaite.
Tous ces boutons fonctionnent bien et affichent bien un message d'erreur quel que soit le navigateur, y compris Firefox.
L'appel AJAX sur lequel j'ai un problème concerne le bouton “deconnexion” affiché en haut à droite de la page.
Quand vous cliquez sur ce bouton, vous êtes déconnecté de WordPress et vous revenez à la page d'accueil, ou la boîte de connexion s'affiche à nouveau.
Ce bouton "deconnexion" fonctionne bien sous Chrome et IE, vous pouvez le vérifier.
Mais il ne fonctionne pas sur Firefox. On revient bien à la page d'accueil mais on est pas déconnecté.
Voici comment cela est mis en oeuvre.
La page est chargée avec un fichier javascript qui contient le code suivant :
Code : Tout sélectionner
$("a[href='/kps_logout']").on('click', function() {
// check href symbolic URL
jQuery.post(
WP_AJAX_URL,
{
'action': 'kps_logout',
'security': $("#kpcms-ajax-nonce").val()
}
);
// redirect and deactivate default navigation
window.location.href = $kps_Host + $kps_LoginPath;
return false;
});
Ce traitement utilise une requête AJAX pour déconnecter l'utilisateur puis redirige l'utilisateur vers la page d'accueil.
Sur le serveur, voici le code qui est exécuté à réception de la requête AJAX, et qui est dans le fichier “functions.php” de mon child theme WordPress :
Code : Tout sélectionner
add_action( 'wp_ajax_kps_logout', 'kps_logout' );
add_action( 'wp_ajax_nopriv_kps_logout', 'kps_logout' );
function kps_logout() {
// security check
check_ajax_referer( 'kpcms-ajax-nonce', 'security' );
// logout user and die
wp_logout();
die ();
}
Mais sous Firefox, je ne le vois pas.
Du coup on revient bien à la page d'accueil mais on est pas déconnecté.
J'ai vidé mon cache Firefox mais ça n'a rien changé.
Donc si vous pouvez m'aider à résoudre ce problème, ce serait top.
Votre Navigateur : Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36