JavaScript — Laravel не определен

Ну, я играю с новыми Laravel 5.3 и vue.js, и я хочу сделать GET-вызов для некоторых пользователей, которые у меня есть в моей БД

Я использую компоненты, кстати.

Это мой app.js

require('./bootstrap');

Vue.component('example', require('./components/UserComponents/User.vue'));

const app = new Vue({

el: 'body',

});

Это мой компонент User.vue. Я оставил HTML-шаблон из-за размера сообщения, поэтому могу опубликовать его, если это необходимо.

<script>

export default{

data : function () {
return {
users : ''
}
},

methods: {fetchUser: function () {

var vm = this;

vm.$http.get('user/', function (data) {
vm.$set('users', data)
})

}
},
ready() {

this.fetchUser();
},

}
</script>

Я получаю 2 ошибки в консоли

 vue-resource.common.js?d39b:27 0ReferenceError: Laravel is not defined(…)

(program):29 Uncaught (in promise) ReferenceError: Laravel is not defined(…)

это мой package.json, как вы можете видеть, у меня есть все глубины, чтобы это работало vue и vue resource

{
"private": true,
"scripts": {
"prod": "gulp --production",
"dev": "gulp watch"},
"devDependencies": {
"bootstrap-sass": "^3.3.7",
"gulp": "^3.9.1",
"jquery": "^3.1.0",
"laravel-elixir": "^6.0.0-9",
"laravel-elixir-vue": "^0.1.4",
"laravel-elixir-webpack-official": "^1.0.2",
"lodash": "^4.14.0",
"vue": "^1.0.26",
"vue-resource": "^0.9.3"}
}

Надеюсь, кто-нибудь может помочь мне здесь. Спасибо

14

Решение

Попробуйте установить это на свой блейд, как вы видите, он вставлен по умолчанию в app.blade на Laravel 5.3

<script>
window.Laravel = <?php echo json_encode([
'csrfToken' => csrf_token(),
]); ?>
</script>
38

Другие решения

Или для более чистого формата:

<script>
window.Laravel = { csrfToken: '{{ csrf_token() }}' };
</script>

Делает то же самое, что и ответ Рокко.

37

если вы используете axios, убедитесь, что после импорта axios в вашем файле bootstrap.js есть следующее:

window.axios.defaults.headers.common = {
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
'X-Requested-With': 'XMLHttpRequest'
};
0
По вопросам рекламы [email protected]