我无法理解为什么我得到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 ...我没有看到它作为路线问题还有别的东西..
答案 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;
}
}