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

Posted

技术标签:

【中文标题】如何修复“此路线不支持 GET 方法。支持的方法:POST。\'?【英文标题】:How to fix 'The GET method is not supported for this route. Supported methods: POST.'?如何修复“此路线不支持 GET 方法。支持的方法:POST。'? 【发布时间】:2021-02-23 05:58:57 【问题描述】:

我正在使用 Laravel 8 开发一个 REST 服务以在 Flutter Web 上使用它,该 API 在本地使用 xampp 可以正常工作,但不能在主机上运行。

route/api.php

Route::post('/test', [TestController::class, 'test']);

控制器/API/TestController.php

<?php
namespace App\Http\Controllers\API;
use Illuminate\Http\Request;

class TestController extends BaseController

    public function test() 
        return $this->sendResponse([], 'Test!');
    

已解决 至少对于我需要的设置,我遵循了这个: https://www.youtube.com/watch?v=X4KElZcUi-g&ab_channel=SimplifiedCoding

【问题讨论】:

好像你的环境不一样。路由是如何在本地注册的,又是如何实时注册的? 我是这方面的初学者,所以请多多包涵,我在本地所做的是将整个 laravel 项目放在 xampp/htdocs 中,并将项目的公共文件夹也移动到 htdocs 中。在直播服务器中,我在public_html外上传了laravel项目,并将项目的public文件夹移到public_html内,并更新了index.php的autoload和bootstrap目录。如果这就是你的意思.. 网站内容也在flutter web的public_html中 我应该检查一些配置吗?从 php 版本到安装的 php 扩展,laravel 8 的要求都很好 是否也在实时服务器中运行 XAMPP? 【参考方案1】:

    在路由定义中测试之前是否需要“/”? Route::post('/test', [TestController::class, 'test']);

    路由通过使用模式匹配来工作。您确定没有任何路由覆盖或优先于该路由吗?

    您是否尝试过清除缓存?

    php artisan route:cache

    你也可以在 Laravel 中查看活跃的路由

    php artisan route:list

【讨论】:

1.我确实尝试删除'/',但结果仍然相同,对于本地和现场.. 本地的好和现场不是。 2. 我刚刚制作了那个 api 来轻松复制我使用登录 api 所体验的内容。 3.每当我实时上传新文件或在本地进行更新时,我总是使用php artisan optimize 清除本地和实时缓存,尽管当我尝试在实时服务器中使用auth:api 中间件执行路由时,响应是Route [login] not defined,这是否表明它以某种方式建立了连接? 4. local 和 live 都得到相同的输出,除了 Name 列,生成的部分不同。感谢您花时间研究这个主题。

以上是关于如何修复“此路线不支持 GET 方法。支持的方法:POST。'?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 npm 审计修复问题?

如何修复drv?

如何修复漏洞

如何修复WMI

PHP网站漏洞怎么修复 如何修补网站程序代码漏洞

如何修复这些漏洞? (npm audit fix 无法修复这些漏洞)