如何修复“此路由不支持 GET 方法。” 支持的方法:POST'

Ant*_*nio 3 laravel postman laravel-5

我正在使用 Laravel 开发 REST 服务,以便从移动应用程序使用它。它在本地运行正常,但在托管上运行不正常。经过几次尝试,我开发了一个基本示例来测试 POST 方法,但它返回相同的错误。

api.php文件

Route::post('/test', 'testController@test') ;
Run Code Online (Sandbox Code Playgroud)

testController.php文件

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class testController extends Controller
{
    //
    public function test(Request $request)
    {
        return response()->json(['mensaje' => 'POST access successful']); 
    }
}
Run Code Online (Sandbox Code Playgroud)

POST 请求总是返回相同的错误,并且我在请愿书上使用 POST:405 方法不允许。该路由不支持 GET 方法。支持的方法: POST

邮递员请求

我调查了这个话题,我读到它可能是由于 CORS。所以,我已经安装了spatie/laravel-cors及其默认配置,但 POSTMAN 仍然显示相同的错误。请帮忙吗?

已解决: 谢谢大家!当然,这不是 CORS 问题。我的托管服务器默认进行重定向,从而丢失 POST 参数。

Gra*_*ant 9

如果您在使用 POSTMAN 时遇到此错误,则需要进入路由参数的“设置”部分并禁用“自动遵循重定向”。

自动跟随重定向,关闭


Shr*_*esh 8

有时,当您有尾部前斜杠时,就会出现问题。

例如:

https://somedomain.com/api/test/
Run Code Online (Sandbox Code Playgroud)

只需删除结尾的正斜杠,这样 url 就会是

https://somedomain.com/api/test
Run Code Online (Sandbox Code Playgroud)