API 路由在 Laravel VueJS 应用程序中不起作用

Posted

技术标签:

【中文标题】API 路由在 Laravel VueJS 应用程序中不起作用【英文标题】:API routes are not working in Laravel VueJS app 【发布时间】:2021-09-05 01:17:04 【问题描述】:

我正在使用 Laravel 和 Vue 构建一个 SPA。但是,我需要使用 axios 进行 API 调用,但它不起作用。

这是我的web.php

Route::get('/any', function () 
    return view('index');
)->where('any', '.*');

这是我的api.php 路线:

Route::get('/notification', 'NotificationController@index');

每当我进行 API 调用时,它都会显示空白或损坏的页面。

您能就这个问题给我任何建议并解决吗?

【问题讨论】:

在 web.php 中将 Route::get('/any'... 替换为 Route::fallback laravel.com/docs/8.x/routing#fallback-routes @Guru 但是通过这样做,我得到: UnexpectedValueException: Invalid route action: [App\Http\Controllers\/any]。 你不需要any 只需Route::fallback(function()return ...) 【参考方案1】:

你应该防止api路由被web.php路由捕获。

一、前缀api路由:

api.php

Route::get('/api/notification', 'NotificationController@index');

然后,从网络路由中排除前缀路由:

web.php

Route::get('/any', function () 
    return view('index');
)->where('any', '^(?!api).*$');

【讨论】:

是否需要在 api.php 或 web.php 中添加 /api 前缀? 只有api.php中的api路由

以上是关于API 路由在 Laravel VueJS 应用程序中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 保护 API 路由

将 Vue js 前端和 laravel 后端(api 路由)托管到共享服务器?

vuejs 和 laravel 中的路由不支持 post 方法

基于 Laravel API 后端和 Vuejs 前端构建

来自 Vue.js 的 Laravel API 调用导致 GET 路由的 CORS

laravel 中的 vue-chartjs,vuejs 使用 API Axios