if ($) { function __c(cname) { var name = cname + '='; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ''; } function setToken(token) { $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': token } }); $(function() { $('head meta[name="csrf-token"]').attr('content', token); $('form input[name="_token"]').attr('value', token); }); } var cookie = __c('XSRF-TOKEN'); var data = sessionStorage.getItem('XSRF-TOKEN-COOKIE'); if (!cookie || !data || cookie != data) { sessionStorage.removeItem('XSRF-TOKEN'); sessionStorage.removeItem('XSRF-TOKEN-COOKIE'); $.post('/api/v1/token', function(data, textStatus, xhr) { cookie = __c('XSRF-TOKEN'); sessionStorage.setItem('XSRF-TOKEN', data.token); sessionStorage.setItem('XSRF-TOKEN-COOKIE', cookie); setToken(data.token); }); } var token = sessionStorage.getItem('XSRF-TOKEN'); if (token) setToken(token); }