Laravel表单抛出方法异常错误(check Post everywhere)


Laravel form throwing Method Exception error (Checked Post everywhere)

<form id="searchForm"  action="searchProduct" method="post">
            <input type="hidden" name="_token" value="{{ csrf_token() }}">
                  <input type="text" id="wholeProdSearch" name="searchProd" placeholder="Search" class="wholeProdSearch">
                   <i class="search link icon"></i>
               </form>

我有表单…当用户点击进入时,我试图搜索一些东西。这是js

$(document).ready(function() {
    $('input.wholeProdSearch').on( 'keypress', function (e) {
         if (e.which == 13) {
          $('#searchForm').submit();
        }
      });
  });

我有这条路线

Route::post('searchProduct','Retailer'ProductController@searchProduct');

仍然抛出错误的方法异常…使用get方法可以很好地工作,但是当我尝试这个时…它仍然抛出错误

error is

**MethodNotAllowedHttpException in RouteCollection.php line 207:**
in RouteCollection.php line 207
at RouteCollection->methodNotAllowed(array('GET', 'HEAD')) in RouteCollection.php line 194
at RouteCollection->getRouteForMethods(object(Request), array('GET', 'HEAD')) in RouteCollection.php line 142
at RouteCollection->match(object(Request)) in Router.php line 729
at Router->findRoute(object(Request)) in Router.php line 652
at Router->dispatchToRoute(object(Request)) in Router.php line 628
at Router->dispatch(object(Request)) in Kernel.php line 214
at Kernel->Illuminate'Foundation'Http'{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
at Pipeline->Illuminate'Pipeline'{closure}(object(Request)) in VerifyCsrfToken.php line 43
at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 17
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate'Pipeline'{closure}(object(Request)) in ShareErrorsFromSession.php line 55
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate'Pipeline'{closure}(object(Request)) in StartSession.php line 61
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate'Pipeline'{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 36
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate'Pipeline'{closure}(object(Request)) in EncryptCookies.php line 40
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate'Pipeline'{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate'Pipeline'{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in Kernel.php line 115
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 84
at Kernel->handle(object(Request)) in index.php line 53

试着把你的表单动作写成

{{ url('/searchProduct') }} 

就可以了

这个问题是由于表单上的action="searchProduct"属性没有正确解析到路由路径。

相反,您应该尝试使用route()url()帮助程序:
action="{{ url('/searchProduct') }}"

或者为你的路由指定一个名称:

Route::post('searchProduct','Retailer'ProductController@searchProduct')->name('product.search');

然后使用route帮助器:

action="{{ route('product.search') }}"