Laravel: POST method returns MethodNotAllowedHttpE

2020-04-06 07:05发布

问题:

I have a POST route in my api.php file, and it is like this:

Route::group(
    ['namespace' => 'api'], function () {
    Route::post('parent/signup', 'ParentController@signUp');
}
);

And I am trying to access this url in postman as this is an api route. But when I send request to this route, this exception occurs:

MethodNotAllowedHttpException in RouteCollection.php line 218:

I am definitely sending a post request as shown in the shot below:

I ran php artisan route:list and this route is a POST one.

| POST | api\/parent\/signup | | App\\Http\\Controllers\\api\\ParentController@signUp

What am I doing wrong here? Any help?

回答1:

I have a same problem on a half of month ago.

The reason is when I post on valid route, it redirects from http to https (configured by .htaccess), so "POST" method becomes "GET" and you see a MethodNotAllowedException.

Check your browser and follow the request, you may see the accurate problem.



回答2:

The problem should be the route namespace, you are not using it properly.

Try to use the route group:

Route::group(['prefix' => 'api'], function()
{
    Route::post('parent/signup', 'ParentController@signup');
});