使用 AJAX 更新返回错误,直接转到路由显示"方法不允许HttpException No 消息"



我正在尝试使用 ajax 进行更新。它总是返回一个错误,我不知道在哪里看。我正在尝试做的是在不必重新加载页面的情况下进行更新。

视图:

    <form id="view-int-form">
    @csrf
        <h1>ID Number:</h1>
        <input type="text" name="id_number" value="{{$var1->id_number}}">
        <h1>Name:</h1>
        <input type="text" name="name" value="{{$var1->name}}">
        <button type="button" id="clickme" value="Save">Save</button>
    </form>

阿贾克斯:

    $(document).on("click", "#clickme", function(){
            $.ajax({
                url: '/updatename',
                type: 'POST',
                data: $("#view-int-form").serialize(), 
                success: function (data) {
                    alert("SAVED");
                },
                error: function (data) {
                    alert("ERROR");
                }
            });
        });

路线:

    Route::post("/updatename","UsersController@UpdateName");

控制器:

    public function UpdateName(Request $request){
        $id = $request->input('id_number');
        $update_name = $request->input('name');
        users::where("id_number",$id)->update(['first_name'=>$update_name]);        
    }

感谢任何可以提供帮助的人。

这是您提供的 URL 的错误。最好提供如下所示的URL,

url: '{{URL::to('updatename')}}',

此外,您可以在 web 中命名您的 url.php就像这样,

Route::post("/updatename","UsersController@UpdateName")->name('update_name');

然后像这样使用, 网址:: '{{route('update_name')}}',

表单中缺少{{ csrf_field() }},表单标记中缺少method="POST"。尝试将视图中的@csrf替换为{{ csrf_field() }}

最新更新