此路由不支持 POST 方法。支持的方法:GET、HEAD。但我只能使用 post 方法

Posted

技术标签:

【中文标题】此路由不支持 POST 方法。支持的方法:GET、HEAD。但我只能使用 post 方法【英文标题】:The POST method is not supported for this route. Supported methods: GET, HEAD., but i have to use post method only 【发布时间】:2021-08-31 23:46:46 【问题描述】:

这是我在刀片文件中使用的代码:

<form action="addTo_cart" method="post">

这是我在web.php中使用的路由

Route::post("/addTo_cart",[ProductController::class, 'addToCart']);

我得到了错误,

此路由不支持 POST 方法。支持的方法:GET、HEAD。

【问题讨论】:

您能否提供更多详细信息,例如刀片模板等发布到此路线的位置... 添加产生错误的具体代码。 【参考方案1】:

像这样初始化你的路线

Route::match(['get',post] , 'View-name' , 'Controller@function-name');

你的路线应该是这样的

Route::match(['get','post'],"/addTo_cart",[ProductController::class, 'addToCart']);

【讨论】:

【参考方案2】:

首先,我建议您像这样为您的路线添加一个名称

Route::post("/addTo_cart",[ProductController::class, 'addToCart'])->name('cart.addToCart');

之后我会重写你的表单的动作以使用你刚刚添加的路线的名称

<form action="route('cart.addproduct')" method="post">

另外,不要忘记您的 csrf 令牌。 “完成”的表单应该是这样的

<form action="route('cart.addproduct')" method="post">
@csrf
<input name="exampleInput">
<button type="submit">
</form>

并确保您在控制器中接受请求(示例)

 public function addToCart(Request $request)
 
        dd($request); //dump the request on the page so you can have a look at it
        //more code
 

【讨论】:

以上是关于此路由不支持 POST 方法。支持的方法:GET、HEAD。但我只能使用 post 方法的主要内容,如果未能解决你的问题,请参考以下文章

错误:此路由不支持 POST 方法。支持的方法:GET、HEAD。 - 使用 laravel livewire

此路由不支持 GET 方法。支持的方法:POST。拉拉维尔 8

此路由不支持 POST 方法。支持的方法:GET、HEAD。",...

此路由不支持 PUT 方法。支持的方法:GET、HEAD、POST。在 laravel 中

laravel向我显示此错误此路由不支持POST方法。支持的方法:GET,HEAD,PUT,DELETE

此路由不支持 GET 方法。支持的方法:POST。 laravel 5.8 阿贾克斯