Конфликт между VueJS и Laravel (SPA ROUTER) - PullRequest
0 голосов
/ 23 октября 2018

Я разрабатываю приложение (SPA) с использованием Laravel и VueJS.

Я использую vue-router для управления своими маршрутами / компонентами, и таким образом он работает отлично.

Но когда я добавляю mode: 'history' axios, он перестает делать все мои запросы в файлах vuex.Это пример запроса, который работает без дружественных URL.

  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)
        })
    })
  }

Это мой routes/api.php на laravel:

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');
    });
});

Это мой route / web.php на laravel:

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
]
...