Laravel 5

Les requêtes AJAX ne modifient pas les variables de session

  • Avatar de AmineKamergi
    Membre depuis :
    24/06/2019
    Messages :
    3

    Bonjour,

    Le scénario est que je lance une requête ajax. Dans la fonction appelée, je définis des variables de session, puis renvoie la valeur vraie à ajax pour me rediriger vers une autre page où je veux afficher les valeurs de session,
    Requête ajax:

    $.ajax({
    method: 'POST',
    url: '/setvariable',
    headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    data: { _token : $('input[name=_token]').val() },
    dataType: "json"
    })
    .done(function(data) {
    window.location.replace('urlnewpage');
    }

    Fonction PHP (ajax):

    public function setvariable(Request $request){
    $request->session()->put('keyak', 'value');
    return [
    'response' => true
    'mavar' =>$request->session()->get('keyak', 'default') //c'est bien 'value'
    ];
    }

    Fonction PHP (nouveau url)

    public function mynewurl(Request $request){
    dd( $request->session()->get('keyak', 'default') ); // il affiche toujours 'default' alors que je cherche qu'il m'affiche 'value'
    }

    Le problème est que ma nouvelle variable de session n'a pas été sauvegardée, et si j'essaie de l'afficher dans la fonction ajax avant de l'envoyer à ajax, j'obtiens des valeurs de session.

    j'ai essayé aussi de le faire fonctionner avec session(['keyak' => 'value']); et session('keyak', 'default') sans succès

    Merci en avance pour vos aides.

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2506

    Salut,

    Il faudrait charger l'url :

    window.location = 'urlnewpage';
  • Avatar de AmineKamergi
    Membre depuis :
    24/06/2019
    Messages :
    3

    Merci pour votre retour,
    Cependant le problème n'est pas au niveau de chargement de la page car même si tu accède directement au nouveau url, la variable de session prend toujours la valeur par défaut c-a-d que ma requete ajax n'arrive pas à modifier la valeur de varaibel en sesion

  • Avatar de CinquièmeDimension
    Membre depuis :
    18/04/2019
    Messages :
    26

    Salut AmineKamergi !

    Il me semble qu'un changement dans session() ne fonctionne que si la fonction aboutie (je ne sais pas si je suis très clair).
    Par exemple si tu fait un changement dans ta session et que tu fais un var_dump de ta session suivi d'un die. Ton var_dump va bien afficher ta nouvelle valeur mais elle ne sera pas conservée la fonction a fini par un die. Elle ne persiste pas.

    Bon, dans ton code tu fini par un return, mais peut-être que ça peut te donner une piste...

Vous ne pouvez pas répondre à ce sujet.