Laravel + Vue два одинаковых проекта, но одна ошибка CSRF

У меня есть 2 проекта, в которых базовый код laravel одинаков, но в одном проекте часть vue.js более продвинута. Теперь у меня есть странное сообщение об ошибке в консоли javascript.

CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token

На следующем шаге я скопировал старую версию функционального кода vue, но с той же ошибкой. Код, который я скопировал, работал в другом проекте.

Код начальной загрузки тот же и выглядит следующим образом:

window._ = require('lodash');

/**
 * We'll load jQuery and the Bootstrap jQuery plugin which provides support
 * for JavaScript based Bootstrap features such as modals and tabs. This
 * code may be modified to fit the specific needs of your application.
 */

try {
    window.$ = window.jQuery = require('jquery');

    require('bootstrap-sass');
} catch (e) {}

/**
 * We'll load the axios HTTP library which allows us to easily issue requests
 * to our Laravel back-end. This library automatically handles sending the
 * CSRF token as a header based on the value of the "XSRF" token cookie.
 */

window.axios = require('axios');

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

/**
 * Next we will register the CSRF Token as a common header with Axios so that
 * all outgoing HTTP requests automatically have it attached. This is just
 * a simple convenience so we don't have to attach every token manually.
 */

let token = document.head.querySelector('meta[name="csrf-token"]');

if (token) {
    window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
    console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}

Затем я делаю несколько тестов в коде bootstrap.js следующим образом:

console.log(token);

Результат пустой.

Что я могу сделать?


person Eddy05    schedule 14.12.2017    source источник


Ответы (2)


Сначала вы должны установить его в теге meta слушателя html:

<meta name="csrf-token" content="{{ csrf_token() }}" />
person Maraboc    schedule 14.12.2017
comment
Да. Если бы он не был установлен, другой проект не работал бы - person Eddy05; 14.12.2017

попробуйте использовать window.token вместо token

person Community    schedule 14.12.2017