我正在使用Laravel和VueJS开发应用程序(SPA)。
我正在使用vue-router来管理我的路由/组件,因此它可以正常工作。
但是当我添加mode: 'history'
时,axios停止在vuex文件中发出所有请求。这是一个无需友好网址即可运行的请求的示例。
userIsLogged: context => {
return new Promise((resolve, reject) => {
window.axios
.get('api/v1/auth/info')
.then(response => {
let user = response.data.user
let roles = response.data.roles
context.commit('USER_AUTHENTICATED', {
user,
roles
})
resolve()
})
.catch(error => {
console.log('falhou aqui')
localStorage.removeItem('AUTH_TOKEN')
reject(error)
})
})
}
这是我在laravel上的routes/api.php
:
Route::name('auth.')->prefix('auth')->namespace('Auth')->group(function () {
Route::name('register')->post('register', 'AuthController@register');
Route::name('login')->post('login', 'AuthController@login');
Route::middleware('auth:api')->group(function () {
Route::name('logout')->post('logout', 'AuthController@logout');
Route::name('info')->get('info', 'AuthController@user');
});
});
这是我在laravel上的route / web.php:
Route::any('{all?}', function () {
return view('welcome');
})->where('all', '^(?!api).*$');
这是我的vue-router文件:
import Vue from 'vue'
import VueRouter from 'vue-router'
import store from '../vuex'
import website from './website'
import auth from './auth'
import admin from './admin'
import sale from './sale'
Vue.use(VueRouter)
const routes = [
website,
auth,
admin,
sale
]