postman 如何修复'此路由不支持GET方法,支持的方法:POST

ttp71kqs  于 2023-04-30  发布在  Postman
关注(0)|答案(6)|浏览(306)

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

API.php文件

Route::post('/test', 'testController@test') ;

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']); 
    }
}

POST请求总是返回相同的错误,我在请愿书上使用POST:405不允许使用方法。此路由不支持GET方法。支持的方法:POST
POSTMAN request
我已经调查了这个主题,我已经读到它可能是由于CORS。所以,我已经安装了spatie/laravel-cors与其默认配置,但POSTMAN仍然显示相同的错误。帮帮忙好吗

**已解决:**谢谢大家!当然,这不是CORS的问题。我的主机服务器默认情况下进行重定向,在此过程中丢失POST参数。

zyfwsgd6

zyfwsgd61#

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

wdebmtf2

wdebmtf22#

有时候,当你有尾随的前斜杠时,问题就出现了。
例如:

https://somedomain.com/api/test/

只需删除尾部的正斜杠,这样URL将为

https://somedomain.com/api/test
8xiog9wr

8xiog9wr3#

有时是因为您在基于“https”的端点上使用“http”。尝试用https替换http。

pvabu6sv

pvabu6sv4#

这是因为CORS(跨域资源共享)受到保护,不允许从其他来源调用您的API。要允许在api.php中将路由置于标头以下设置

header('Access-Control-Allow-Origin:  *');
header('Access-Control-Allow-Methods:  POST, GET, OPTIONS, PUT, DELETE');
header('Access-Control-Allow-Headers:  Content-Type, X-Auth-Token, Origin, Authorization');
avkwfej4

avkwfej45#

你确定你调用了/api/test因为在API中。php路由文件有一个前缀上的路由

hlswsv35

hlswsv356#

如果您使用Postman,问题可能是您忘记在请求中添加标题:Accept -〉application/json

相关问题