向Laravel API中的POST路由发送POST请求时出现GET错误

6qfn3psc  于 2023-01-03  发布在  其他
关注(0)|答案(4)|浏览(485)

本地项目运行良好。在Laravel 9 API中向POST路由发送POST请求时,服务器上出现此错误。

"message": "The GET method is not supported for this route. Supported methods: POST."

api.php路径文件中的我的路径:

Route::post('/userdata/create', [UserDataController::class, 'createAccount']);

我的路由列表中的路由(来自php artisan route:list):

POST       api/v1/userdata/create .......... Api\V1\UserDataController@createAccount

尝试:

php artisan cache:clear
php artisan route:cache
php artisan route:clear

还没修好。

hgqdbh6s

hgqdbh6s1#

发生这种情况的原因是您已强制您的域进行HTTPS重定向,并且您正尝试将其用作HTTP。您的域设置将您的请求重定向到HTTPS,而不是重定向到POST方法。

  • 如果您查找 Postman 日志/控制台,您将发现HTTPPOST请求重定向到HTTPSGET请求

  • 因此您的服务器响应错误

06odsfpq

06odsfpq2#

这个问题的解决办法其实很简单:
我需要将POST请求发送到“https”URL,而我正在将其发送到“http”URL。
仍然奇怪的是服务器抱怨使用了GET方法...

sycxhyv7

sycxhyv73#

这个问题最近发生在我身上,我使用.com而不是.net

u1ehiz5o

u1ehiz5o4#

这是因为laravel无法返回错误。

    • 溶液1:**

你可以在你的API post函数中使用它:

try{
   // example we have name field
   $request->validate([
      'name' => ['required','string','max:255']
   ]);
   
   User::create([
      'name' => $request->name
   ]);

   return 'registered';
     
}catch(Exception $error){
   
   // your error from validation will appear here
   // dd($error->validator->messages());
   
}
    • 溶液2:**

作为备选:我在link中找到了另一个方法

相关问题