【发布时间】:2018-05-28 22:37:05
【问题描述】:
试图弄清楚为什么我的 DELETE 请求不起作用..我在 Firefox 中使用 Postman 和 RESTClient 来发送这个 DELETE 请求
删除http://localhost:8000/api/access-tokens
我得到同样的错误:
(1/1) MethodNotAllowedHttpException 在 RouteCollection.php 中(第 252 行) 在 RouteCollection->methodNotAllowed(array('GET', 'HEAD')) in >RouteCollection.php(第 239 行)
这是我的路由/api.php:
Route::post('access-tokens', 'AuthController@login');
// Register
Route::post('users', 'AuthController@register');
Route::post('recover', 'AuthController@recover');
Route::group(['middleware' => ['jwt.auth']], function() {
Route::delete('access-tokens', 'AuthController@logout');
Route::get('me', function(Request $request) {
return $request->user();
});
Route::post('access-tokens/refresh', 'AuthController@refreshToken');
Route::post('ideas', 'IdeasController@store');
});
这是 php artisan route:list 的输出
| | DELETE | api/access-tokens | | App\Http\Controllers\AuthController@logout | api,jwt.auth |
【问题讨论】:
-
可能你必须在请求中添加一个
_token和一个_method字段。_method应该有DELETE作为值。 -
使用 POST 方法
-
我使用 JWT 令牌进行身份验证,我在标头中发送访问令牌。我尝试在请求正文中添加 _method 但没有运气!
-
我不能使用POST方法,这是项目的要求
-
如果您想调试此问题,我建议创建相同的路由,但不要使用
post或delete,而是使用any并检查控制器内部的请求方法。