【问题标题】:Laravel 5.4 - MethodNotAllowedHTTPException on DELETE requestLaravel 5.4 - 删除请求时出现 MethodNotAllowedHTTPException
【发布时间】: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方法,这是项目的要求
  • 如果您想调试此问题,我建议创建相同的路由,但不要使用postdelete,而是使用any 并检查控制器内部的请求方法。

标签: php laravel rest


【解决方案1】:

您将数据发布为 GET,尝试添加方法字段

{{ method_field('DELETE') }}

【讨论】:

  • 我不这么认为..如果您阅读我的句子,您会注意到我正在向邮递员发出删除请求..这里没有表格
【解决方案2】:

问题出在我的控制器中。评论了一行,它有效! 谢谢大家

【讨论】:

    猜你喜欢
    • 2017-12-21
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 2018-04-13
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    相关资源
    最近更新 更多