使用Laravel + Vue正确处理404响应

时间:2018-12-18 17:19:23

标签: laravel api vue.js

我是Vue的新手,我不知道使用api路由处理404响应的正确方法。

在我的路线中> web.php,我有:

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

将每个请求路由到一个入口点,然后我通过Vue路由器处理该入口点。

在我的路线中> api.php我有:

Route::get('/', 'HomeController@index')->name('home');
Route::get('/listings/{listing}', 'ListingController@show')->name('listing');
...(more routes)

从我的控制器获取一些数据并返回json响应。

假设我打了https://example.com/notexistingroute

该路由将通过应用条件->where('any', '.*');

中存在的web.php路由

然后它将在我的api路由中失败,因此我将捕获该错误,并向用户显示404组件,但是https://example.com/nonexistingroute将200状态代码返回给浏览器,这对seo不利。

我了解我需要在我的web.php路由或类似的路由中添加一个额外的过滤器,但不确定如何...

1 个答案:

答案 0 :(得分:0)

在Laravel中,您可以使用abort函数返回404错误代码。

abort(404);

您可以在此处找到一些如何处理404状态代码的示例。

https://laravel.com/docs/5.7/errors#http-exceptions