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

Posted

技术标签:

【中文标题】错误:此路由不支持 POST 方法。支持的方法:GET、HEAD。 - 使用 laravel livewire【英文标题】:error: The POST method is not supported for this route. Supported methods: GET, HEAD. - using laravel livewire 【发布时间】:2021-09-25 07:52:11 【问题描述】:

我正在尝试使用 Laravel livewire 进行图像上传,但是当我单击“上传”按钮以测试功能时,会出现此错误

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

节目:

路线

Route::get('/upload', UploadFoto::class)->name('upload.foto.user');

CONTROLLER(使用 dd 进行测试)

<?php

namespace App\Http\Livewire\User;

use Livewire\Component;

class UploadFoto extends Component

    public $foto;
    
    public function render()
    
        return view('livewire.user.upload-foto');
    

    public function storageFoto()
    
        dd('aqui');
    

查看 @extends('layouts.app')

@section('content')


<div>
    -- To attain knowledge, add things every day; To attain wisdom, subtract things every day. --

    <form action="#" method="post">
        <input type="file" name="foto" id="foto" wire:submit.prevent="storageFoto">
        <button type="submit">Upload</button>
</form>

</div>
@endsection

【问题讨论】:

将您的路由定义更改为 POST,对于表单操作,请使用命名参数,如 &lt;form action="route('upload.foto.user')" method="post"&gt;。您可能会将请求发送到另一个地方! 我更改了 "
" 和路线,但对我不起作用。出现同样的错误。我还能改变什么?
【参考方案1】:

您在这条路线上设置了 get 方法 - 但上传使用 post 方法。改变它:

Route::post('/upload', UploadFoto::class)->name('upload.foto.user');

【讨论】:

也许是因为你有 dd() 函数在起作用?) 那我可以改变什么?【参考方案2】:

将路由方法改为 Post

Route::post('/upload', UploadFoto::class)-&gt;name('upload.foto.user');

【讨论】:

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

此路由不支持 GET 方法。支持的方法:POST。在插入/存储

此路由不支持 post 方法

Laravel 8 - 此路由不支持 POST 方法。支持的方法:删除

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

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

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