流明抛出405方法不允许在获取路线上

时间:2017-05-02 20:03:28

标签: laravel lumen lumen-5.3

我无法理解为什么我得到405以下

$app->group(['prefix' => 'api/v1'], function($app)
{
    $app->get('my','MyController@index');
    $app->post('my','MyController@store');
});

post url按预期工作但当我定义了get route时,应用程序开始抛出405。

调用url show

in RoutesRequests.php line 596
at Application->handleDispatcherResponse(array(2, array('POST'))) in RoutesRequests.php line 533
at Application->Laravel\Lumen\Concerns\{closure}() in RoutesRequests.php line 781
at Application->sendThroughPipeline(array(), object(Closure)) in RoutesRequests.php line 534
at Application->dispatch(null) in RoutesRequests.php line 475
at Application->run() in index.php line 28

post url工作正常它只是获取url正在抛出405 ...清除缓存,生成自动加载文件...不确定是什么错误..

使用新路线定义新控制器并抛出404 ...我没有看到它作为路线问题还有别的东西..

4 个答案:

答案 0 :(得分:0)

我按原样试用了这个场景,但它确实有效。你有调试吗?如果您进入.env文件,请检查APP_DEBUG变量是否设置为true

完成后,尝试加载页面并发布您看到的错误。

PS:还要检查是否已创建MyController控制器。

答案 1 :(得分:0)

这是因为,您正在尝试访问具有POST方法的路由,或者您正在使用POST方法发布数据,以路由具有GET方法的路由。

检查您的路线&形式。

答案 2 :(得分:0)

只是有同样的行为,花了一个小时试图解决它。

最后它在GET查询中尾随斜杠。

答案 3 :(得分:0)

这是由于您的中间件未处理OPTIONS个请求

您的中间件应如下所示:

class CorsMiddleware
{
/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Closure  $next
 * @return mixed
 */
public function handle($request, Closure $next)
{
    //Intercepts OPTIONS requests
    if ($request->isMethod('OPTIONS')) {
        $response = response('', 200);
    } else {
        // Pass the request to the next middleware
        $response = $next($request);
    }

    // Adds headers to the response
    $response->header('Access-Control-Allow-Methods', 'HEAD, GET, POST, PUT, PATCH, DELETE');
    $response->header('Access-Control-Allow-Headers', $request->header('Access-Control-Request-Headers'));
    $response->header('Access-Control-Allow-Origin', '*');
    $response->header('Access-Control-Expose-Headers', 'Location');

    // Sends it
    return $response;
}
}

https://github.com/laravel/lumen-framework/issues/674