2017-08-30 118 views
0

网站上有2种语言版本,当您打开Rus时,语言被添加到URL“/ ru”,即它将是http://site/ru,但同时,所有尝试发送一个错误的形式结束 - “MethodNotAllowedHttpException在RouteCollection.php”,在原来的语言http://site形式常正在Laravel。 RouteCollection.php中的MethodNotAllowedHttpException

我的形式:

<form action="/callback" method="post"> 



Route::post('/callback', '[email protected]'); 
+1

不允许使用除POST之外的其他方法,您可能正在向该/回调路由发送获取请求。将其更改为Route :: get并重试。 – Frondor

+0

@Frondor,但我有

+0

你确定窗体在'/ callback'路径下吗?否则,您必须在'action'属性中指定它:''。 – Frondor

回答

1

通过注册这条路线,你是明确要求一个POST请求,任何其他方法都是不允许的。

如果你不能控制传入请求的方法,那么你应该尝试使用 Route::getRoute::any(如果你正在创建一个API,我不会推荐最后一个)。

如果你感到困惑的路线是如何工作的,我建议你使用命名的路线,所以你总是确保你的形式指向正确的方向:

Route::post('/callback', '[email protected]')->name('api.callback'); 

然后用它来您的视图就像

<form method="POST" action="{{ route('api.callback') }}"> 

形式或者,如果你不想给它一个名称,只是用action帮手

<form method="POST" action="{{ action('[email protected]') }}"> 
+0

最后一个选项(:: any)有效,但它为什么不可取使用它? –

+0

@ByArper所以你有更多的控制你的路线,并不是真正的安全风险或类似的东西,但我总是想控制我要暴露的路线。 – Frondor

+1

非常感谢您的宝贵信息) –

相关问题