2017-08-30 116 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

非常感謝您的寶貴信息) –

相關問題