【发布时间】:2019-12-21 17:07:43
【问题描述】:
我有一个用户可以发布到的 API 端点
Route::post('report', 'Auth\ReportController@report')
因为它只支持 POST 请求,如果用户去mydomain.com/api/report他们会得到错误
此路由不支持 GET 方法。
我不希望用户在他们的地址栏中输入此内容并收到此错误。所以我做了一个重定向到家的get
Route::get('report', function () {
return redirect('home');
});
这是处理这个问题的正确方法吗?有没有更优雅的解决方案?此外,是否可以列出多条路线并将它们全部重定向到家,例如这样的:
Route::get(['report', 'issuer'], function () {
return redirect('home');
});
【问题讨论】:
-
只是一个错误有什么问题?
-
如果路由不支持某个方法,我本来希望收到 405 Method Not Allowed。正是为此用例添加了 405 状态代码。如果用户也不允许访问 POST 路由,则返回 403 Forbidden 是有意义的。