Ну, я играю с новыми 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"}
}
Надеюсь, кто-нибудь может помочь мне здесь. Спасибо
Попробуйте установить это на свой блейд, как вы видите, он вставлен по умолчанию в app.blade на Laravel 5.3
<script>
window.Laravel = <?php echo json_encode([
'csrfToken' => csrf_token(),
]); ?>
</script>
Или для более чистого формата:
<script>
window.Laravel = { csrfToken: '{{ csrf_token() }}' };
</script>
Делает то же самое, что и ответ Рокко.
если вы используете axios, убедитесь, что после импорта axios в вашем файле bootstrap.js есть следующее:
window.axios.defaults.headers.common = {
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
'X-Requested-With': 'XMLHttpRequest'
};