Vuejs路线与Laravel路线冲突,试图提出axios请求



我正在尝试发出一个get请求。

我的项目被设置为SPA,所以VueJS正在处理我的每个"页面"的路由。

我想我已经缩小了VueJS路由干扰Laravel路由的范围,因为无论我访问哪个无效端点/someEndPoint,在开发工具下,我总是收到如下相同的html响应。我也可以提出帖子请求,数据可以输入到我的数据库中,这很好。但无论我尝试什么获取请求,它都不会进入指定的控制器功能

这是一个标准的获取请求,我正在尝试进行

axios.get('/reservation/date/2018-11-13/')
.then(function(response) {
console.log("data", response.data);
console.log("status", response.status);
}).catch(function (error) {
console.log(error);
});

状态代码为200 的响应

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>My Home Page</title>
<meta name="csrf-token" content="hrfSpnUDNsVv6pLQM4v0UFUk2yrq3m8yPYiss2YT">
<link href="http://localhost:8000/css/app.css" rel="stylesheet">
</head>
<body>
<div id="root">
<ps-header></ps-header>
<router-view>
</router-view>
<ps-footer></ps-footer>
</div>
<script src="http://localhost:8000/js/app.js"></script>
</body>
</html>

VueJS路由-routes.js

import VueRouter from 'vue-router';
let routes = [
{
path: '/',
name: 'home',
component: require('./components/views/pages/home.vue')
},
{
path: '/faq',
name: 'faq',
component: require('./components/views/pages/faq.vue')
},
{
path: '/register',
name: 'register',
component: require('./components/views/pages/register.vue')
},
{
path: '/login',
name: 'login',
component: require('./components/views/pages/login.vue')
},
{
path: '/testPage',
name: 'testPage',
component: require('./components/views/pages/testPage.vue')
}
]
export default new VueRouter({
routes,
linkActiveClass: 'is-active',
mode: 'history'
});

Laravel路线-web.php

Route::get('/{vue?}', function () {
return view('index');
})->where('vue', '[/w.-]*');
Route::get('/reservation/date/{date}', 'ReservationContoller@getScheduleForDate'); //route in question
Route::resource('/reservation', 'ReservationController');
Route::get ('/admin', 'AdminController@index');
Route::get('/home', 'HomeController@index')->name('home');
Auth::routes();

如何将Laravel路由与VueJS路由结合使用?

正如OP的评论中所提到的,这恰好是我在web.php文件中的路由排序。这是的更新文件

Route::get('/reservation/date/{date}', 'ReservationController@getScheduleForDate');
Route::resource('/reservation', 'ReservationController');
Route::get ('/admin', 'AdminController@index');
Route::get('/home', 'HomeController@index')->name('home');
Auth::routes();
Route::get('/{vue?}', function () {
return view('index');
})->where('vue', '[/w.-]*');

在其他地方不需要进行任何更改,在原始的web.php文件中也有一个拼写错误,因为错误响应返回到一个未知的控制器。只是需要修复名称。

当我在谈论VueJS路由干扰Laravel路由时,应该点击它。我确实对它进行了重组,但我忘记了vue路线。

如果重新排序路由不起作用,我会继续清除缓存并路由

php artisan route:clear
php artisan cache:clear

最新更新