【问题标题】:Why am I getting an error "The GET method is not supported for this route. Supported methods: POST." when I am actually making a post request?为什么我收到错误“此路由不支持 GET 方法。支持的方法:POST。”当我真正发出一个帖子请求时?
【发布时间】:2021-10-13 12:32:40
【问题描述】:

我在一个带有 Laravel api 的 Vue 应用程序中工作,我得到的正是标题中所说的内容。

我的 Axios 电话:return await axios.post("/customers/load-cart-data", payload);

在我的网络标签的常规部分中:Request Method: POST

我从我们的 api 得到的信息:"message": "The GET method is not supported for this route. Supported methods: POST."

我什至在拦截器中注销req,它说:....,method: "post"

我只是想知道是否有一些服务器路由配置丢失或者我可以做些什么来解决这个问题。

谢谢大家!

【问题讨论】:

  • 这是一个关于你的 API 的问题,而不是你访问它的方式。您没有向我们提供有关您正在使用的 API 或其背后的任何信息,那么我们怎么知道它为什么会给出不适当的错误消息和/或拒绝完全有效的请求?
  • 在您的web.phpapi.php 中将路由从get 更改为post
  • 分享您的路线,如果您没有完全显示您的api.phpweb.php,我们将无法帮助您...
  • 我猜你在某处有重定向。如果您发布到执行 301/302 重定向的 url,则重定向方法将是 GET(没有发布数据)。这可能是您的应用程序中的重定向设置,也可能是 Web 服务器 HTTP -> HTTPS 重定向。

标签: laravel vue.js http axios


【解决方案1】:

当您使用不同的方法为 api.php 和 web.php 声明相同的路由名称时,可能会发生这种情况,对于 api.php,您应该使用 post 方法,而 web.php 应该是页面的路由。

在控制台上更改你的 api 上的路由名称后,编写此命令。

php artisan route:clear

您应该清除所有路由缓存,然后尝试测试您的 api。

【讨论】:

  • 错误消息并不表示路由定义错误。该消息告诉我们他们已经定义了一个 POST 路由,但他们正在使用 GET 请求来访问它。 OP 声称他们正在发出 POST 请求,但应用程序正在接收 GET 请求,因此消息说“GET 无效;使用 POST”(释义)。
猜你喜欢
  • 2021-08-01
  • 2023-01-02
  • 2020-09-04
  • 1970-01-01
  • 2021-06-17
  • 2020-05-15
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多