2017-02-13 7 views
0

Я пытаюсь установить cookie с js-cookie.js после выполнения некоторых запросов ajax. Если я поставилне удалось установить cookie после запроса ajax

Cookies.set('cookieName',object) 
var cookie = Cookies.get('cookieName') 
console.log(cookie); 

внутри успеха я получаю не определено, но, если я положил его вне АЯКС обратного вызова я получить распечатку (конечно, это не то, что я хочу, так как это закончится, прежде чем обратный вызов делается).

Я попытался также использовать функцию $ .whenAll() (https://gist.github.com/fearphage/4341799), чтобы дождаться завершения всего запроса ajax, но снова внутри функции обратного вызова cookie не задано.

+0

Вы пытались настроить файл cookie внутри 'success: function (data) {...}'? Вы даже можете передать обратный вызов прямо в это как параметр функции, которую вы обертываете. – G0dsquad

+0

Да, как я уже сказал, я попытался поставить код выше внутри «success: function (data) {...}», но на console.log() я получаю undefined. Я не понял вторую часть вашего ответа. – user2459104

+0

Можете ли вы показать весь код для функции успеха, которую вы пробовали? –

ответ

0
$('form.login').submit(function(e) { 
     $form = $(this); 
     e.preventDefault(); 
     $.get('someUrl') 
     .done(function(data) { //data is returned async 
      setCookie('weirdName', data, 1); //use async called data 
     }) 
     .fail(function() { 
      $('.error').show(); 
     }); 
    }); 

function setCookie(cname, cvalue, exdays) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
    var expires = "expires="+ d.toUTCString(); 
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 
} 
+1

Ah thx то есть – user2459104

0

Вы используете Codeigniter? Я просто решил одну и ту же проблему, в моем случае установил cookie в ajax и вне ajax имел разные результаты, такие как разные url.

Я еще не могу прокомментировать ... вот почему я публикую здесь.

+0

Но вопрос отмечен как laravel, так что это не codeigniter –

+1

Хотя я не уверен, что это имеет значение здесь вообще, так как я просто хочу установить cookie cookie после ajax (мне все равно, что такое бэкэнд) – user2459104

Смежные вопросы