Итак, я перешел на использование компонентов vue внутри моего проекта laravel.Я пытаюсь отправить запрос на запись в мой контроллер входа в систему через файл web.php, однако, когда я пытаюсь это сделать, я получаю сообщение об ошибке sayin MethodNotAllowedException, и я думаю, что это может быть связано с защитой csrf
, но даже при добавленииЗаголовки к моему почтовому запросу не решили мою проблему.
Итак, вот компонент vue login, выполняющий почтовый запрос
<template>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card card-default">
<div class="card-header">
Login
</div>
<div class="card-body">
<form @submit.prevent="login">
<input type="text" v-model="username" class="form-control mb-3" placeholder="Email">
<input type="password" v-model="password" class="form-control mb-3" placeholder="Password">
<div>
<button type="submit" class="btn btn-primary btn-block">Login</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'login',
data() {
return {
username: '',
password: ''
}
},
methods: {
login() {
this.$store.dispatch('login', {
username: this.username,
password: this.password
})
}
}
}
</script>
- это действие магазина, которое я отправляю с заголовками, настроенными глобально,Я не уверен, что мне все еще нужно передать его в объект axios?
import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'
Vue.use(Vuex)
axios.defaults.baseURL = 'http://multitenant-diy.test/web'
let token = document.head.querySelector('meta[name="csrf-token"]');
axios.defaults.headers.post['header1'] = {
'X-Requested-With': 'XMLHttpRequest',
'X-CSRF-TOKEN': token.content
}
export default new Vuex.Store({
actions: {
login(context, credentials) {
axios.post('/login', {
username: credentials.username,
password: credentials.password
})
.then(response => {
console.log(response.data);
context.commit('loggedIn', response.data)
})
.catch(error => {
console.log(error.response.data)
})
}
}
})
, и вот маршрут входа в систему web.php, который я называю
Route::domain('multitenant-diy.test')->group(function () {
Route::get('/{any}', 'AppController@index')->where('any', '.*');
Route::post('/login', 'AdminController@login');
});
Любое пониманиена то, что я пропускаю, будет принята с благодарностью !!