【问题标题】:Laravel Response method not allowedLaravel 响应方法不允许
【发布时间】:2019-01-18 19:47:59
【问题描述】:

我正在使用当前 Laravel 文档中的这段代码

return redirect()->action(
    'UserController@profile', ['id' => 1]
);

并将其更改为我自己的控制器,如下所示:

return redirect()->action('ProjectController@showProject',['id'=> 2]); 

我的路线:Route::get('/crm/project/{id}', 'ProjectController@showProject');

根据我的F12,这是我的请求网址http://127.0.0.1:8000/back/crm/project/2,这是正确的。但我收到以下错误:405 Method Not Allowed.

这是我的堆栈跟踪的开始:

{消息:“”,异常:“Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException”,…}

提前致谢。

编辑:添加路线。

【问题讨论】:

  • 你能显示你的路线吗
  • Route::get('/crm/project/{id}', 'ProjectController@showProject'); 是我的路线。
  • 你在重定向后发现的 url 在哪里得到这个错误
  • 什么? @ShaielndraGupta 如果我转到我的 Inspect Element->network->Preview/Headers/Respone,我会发现此错误
  • 我说的是您收到错误的请求 URL。您可以在 inspect->network 中找到它并查看标题

标签: laravel laravel-5 response laravel-response


【解决方案1】:

总是使用GET 方法进行重定向。我假设在 web.php 中,您使用其他 HTTP 方法(例如 PUTPOST)定义了此路由 - 这就是您收到此错误的原因。查看web.php 文件并确保您使用的是GET 方法或重定向到其他网址。

【讨论】:

  • 我在我想重定向到的路线上使用GET 方法。还是我也必须在GET 路线上使用它?因为我当前使用的路线是PUT 路线。我想重定向到的路线:Route::get('/crm/project/{id}', 'ProjectController@showProject'); 当前使用的路线:Route::put('/crm/project/{id}', 'ProjectController@update');
【解决方案2】:

这可能是一个棘手的问题。

我认为您需要更改方法。检查您的 web.php 以获取该路线的声明。最好为您的路由使用中间件组。

这只是说你的方法是不允许的,因为它已经用另一种方法声明了。

【讨论】:

    【解决方案3】:

    您遇到的问题是因为您为两种不同的方法使用了相同的函数名称,一种用于获取,一种用于放置,为什么您会收到错误,因为您在重定向中传递动作,因此它搜索动作并找到该动作使用 put 方法

    用它来重定向

    return redirect()->route('/back/crm/project/', ['id' => 1]);
    

    还有一件事我想建议你永远不要在 ajax 请求它不是一个好的编程习惯 如果您在 ajax 中有 put 或 post 方法,它根本不起作用

    做出成功响应并刷新您的位置就可以了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      • 2018-07-16
      • 2018-12-15
      • 2017-11-28
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多