2016-04-20 6 views
2

Так что у меня проблемы с запросом в laravel.Laravel 5.2 Запрос PUT дает методNotAllowedHttpException

Я сделал свое исследование и знать, что вы должны имитировать PUT запрос с _method = PUT и изменить его на POST потому что HTML не поддерживает PATCH и PUT.

Однако почтальон по-прежнему возвращает MethodNotAllowedHttpException, я также добавил URL-адрес в массив $except в классе VerifyCsrfToken. Я также попытался добавить его как переменную GET в конец URL-адреса без каких-либо успехов.

Журнал ошибок возвращаемый Laravel:

in RouteCollection.php line 219 
at RouteCollection->methodNotAllowed(array('PUT')) in RouteCollection.php line 206 
at RouteCollection->getRouteForMethods(object(Request), array('PUT')) in RouteCollection.php line 158 
at RouteCollection->match(object(Request)) in Router.php line 802 
at Router->findRoute(object(Request)) in Router.php line 670 
at Router->dispatchToRoute(object(Request)) in Router.php line 654 
at Router->dispatch(object(Request)) in Kernel.php line 246 
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44 
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 
at Pipeline->then(object(Closure)) in Kernel.php line 132 
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99 
at Kernel->handle(object(Request)) in index.php line 54 

Это мои маршруты:

+--------+----------+-----------------------------------+------+-----------------------------------------------------------------+------------+ 
| Domain | Method | URI        | Name | Action               | Middleware | 
+--------+----------+-----------------------------------+------+-----------------------------------------------------------------+------------+ 
|  | GET|HEAD |/        |  | Closure               | web  | 
|  | PUT  | api/user       |  | App\Http\Controllers\[email protected]     |   | 
|  | POST  | dashboard/admin/updatedate  |  | App\Http\Controllers\[email protected]    | web,auth | 
|  | GET|HEAD | dashboard/alerts     |  | App\Http\Controllers\[email protected]      | web,auth | 
|  | GET|HEAD | dashboard/categorie/{id}   |  | App\Http\Controllers\[email protected]     | web,auth | 
|  | GET|HEAD | dashboard/development    |  | App\Http\Controllers\[email protected]    | web,auth | 
|  | GET|HEAD | dashboard/home     |  | App\Http\Controllers\[email protected]      | web,auth | 
|  | GET|HEAD | dashboard/login     |  | App\Http\Controllers\Auth\[email protected]   | web,guest | 
|  | POST  | dashboard/login     |  | App\Http\Controllers\Auth\[email protected]     | web,guest | 
|  | GET|HEAD | dashboard/logout     |  | App\Http\Controllers\Auth\[email protected]     | web  | 
|  | POST  | dashboard/password/email   |  | App\Http\Controllers\Auth\[email protected] | web,guest | 
|  | POST  | dashboard/password/reset   |  | App\Http\Controllers\Auth\[email protected]    | web,guest | 
|  | GET|HEAD | dashboard/password/reset/{token?} |  | App\Http\Controllers\Auth\[email protected]  | web,guest | 
|  | POST  | dashboard/register    |  | App\Http\Controllers\Auth\[email protected]    | web,guest | 
|  | GET|HEAD | dashboard/register    |  | App\Http\Controllers\Auth\[email protected] | web,guest | 
|  | GET|HEAD | dashboard/zone/{id}    |  | App\Http\Controllers\[email protected]      | web,auth | 
+--------+----------+-----------------------------------+------+-----------------------------------------------------------------+------------+ 

Вот мои маршруты в скрипте:

Route::group(['middleware' => ['web']], function() { 
    Route::get('/', function() { 
    return view('pvn.index'); 
    }); 

    Route::group(['prefix' => 'api'], function() { 
    Route::put('/user', '[email protected]'); 
    }); 

    Route::group(['prefix' => 'app'], function() { 
    return view('app.map.view'); 
    }); 

    Route::group(['prefix' => 'dashboard'], function() { 
    Route::auth(); 
    }); 
}); 

Route::group(['middleware' => ['web','auth']], function() { 

    Route::group(['prefix' => 'dashboard'], function() { 
     Route::post('/admin/updatedate', '[email protected]'); 

     Route::get('/home', '[email protected]'); 

     Route::get('/development', '[email protected]'); 
     Route::get('/categorie/{id}', '[email protected]'); 
     Route::get('/zone/{id}', '[email protected]'); 
     Route::get('/alerts', '[email protected]'); 
    }); 


}); 

Почтальон код:

PUT /api/user HTTP/1.1 
Host: platformveilignederland.nl 
Cache-Control: no-cache 
Postman-Token: 8dd46b47-ad06-151e-57de-7ddf37ee4f66 
Content-Type: application/x-www-form-urlencoded 

user=gertje 

У кого-нибудь есть идея, что может пойти не так?

+0

Какого маршрута вы делаете запрос? –

+0

Вы делаете сообщение с помощью x-www-form-urlencoded, выбранного на вкладке тела Postman? –

+0

Где находится ваш код формы? На какой маршрут вы отправляете сообщение? –

ответ

2

Это была проблема с моим .htaccess, сервер не разрешил запрос на удаление и удаление. добавили эти строки, чтобы сделать его работу:

<Limit GET POST PUT DELETE> 
    Allow from all 
</Limit> 

Надеется, что это помогает кто-то в будущем