当前位置: 首页 > 知识库问答 >
问题:

Laravel:在AJAX调用资源控制器后,没有消息的方法是错误的

祝花蜂
2023-03-14

我正在更新数据库中某些模型的值,但当我点击submit时,出现以下错误:

“消息:”,异常:“Symfony\Component\HttpKernel\exception\MethodNotAllowedHttpException”,文件:“C:\xampp\htdocs\Restaurante1\vendor\laravel\framework\src\light\Routing\RouteCollection”。php“,第255行”

这是我的JQuery代码:

var formData = new FormData();
            formData.append('id', $(this).attr("data-id"));
            formData.append('first', $('#schedules_morning').val());
            formData.append('second', $('#schedules_night').val());
            
            $.ajax({
            

                
                async: true,
                cache: false,
                url: '/schedules',
                type: 'PUT',
                data: 
                {
                formData
                },
                dataType: 'JSON',
                processData: false,
                contentType: false,
            
                success: function (data) { 
                    $('.form_valid_container').fadeIn().html('<span class="form_valid_text">✓ '+ data.success +'</span>');
                    form.trigger("reset");
                    console.log(data.success);
                },
            
                error: function (data){
                    var errors = data.responseJSON;
                    console.log(errors);
                
                    $.each(errors , function(){
                        $('.form_error_container').fadeIn().html('<span class="form_error_text">✘ '+ errors.message +'</span>')
                    }); 
                }
                
                
            });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

我正在将请求发送到资源控制器路由:

路由::资源('/schedules','ScheduleController');

public function update(Request $request)
    {
        $schedule = Schedule::findOrFail($id);
        $schedule->morning = $request->morning;
        $schedule->night = $request->night;
        $schedule->save();
        
        return response()->json([
        
            'schedule' => $schedule,
            'success' => 'Horario actualizado correctamente',
        ]);
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

共有1个答案

陆雨华
2023-03-14

PHP(Laravel)只是欺骗PUT和DELETE请求,所以在laravel中的所有把请求,他们把一个隐藏的变量称为_method与值和laravel验证该方法后请求。所以像下面这样替换你的代码,它应该可以工作。

var formData = new FormData();
        formData.append('id', $(this).attr("data-id"));
        formData.append('first', $('#schedules_morning').val());
        formData.append('second', $('#schedules_night').val());
        formData.append('_method', 'put');

        $.ajax({



            async: true,
            cache: false,
            url: '/schedules',
            type: 'POST',
            data: 
            {
            formData
            },
            dataType: 'JSON',
            processData: false,
            contentType: false,

            success: function (data) { 
                $('.form_valid_container').fadeIn().html('<span class="form_valid_text">✓ '+ data.success +'</span>');
                form.trigger("reset");
                console.log(data.success);
            },

            error: function (data){
                var errors = data.responseJSON;
                console.log(errors);

                $.each(errors , function(){
                    $('.form_error_container').fadeIn().html('<span class="form_error_text">✘ '+ errors.message +'</span>')
                }); 
            }


        });
 类似资料:
  • 我正在使用反应laravel一个简单的污秽应用程序。我正在使用Axios向服务器发出请求。GET, POST工作正常。我能够使用POST方法(axios.post)创建一个新项目。但是,当我尝试删除一个项目时,laravel抛出一个405错误,代表不允许的方法 这是我的路线:

  • 对于控制器中的show($id)、edit($id)方法,它必须是数据库表中的“id”列吗 我想用数据库表中“post_id”列的值替换$id,但它引发错误: 如何修复它? 示例代码: 数据库表: id(int)、post_id(varchar32)、post_标题(varchar32)、post_内容(text) 路线: 路由::资源('posts','PostsController'); Po

  • 在我的laravel项目中,我通过资源控制器插入数据。但是现在我想使用ajax请求,使用相同的路由和相同的资源控制器方法来插入我如何发送url以及如何向它发送表单数据。 路线 控制器 模型 添加表单div ajax函数的js代码

  • 我有一个spring控制器,从那里返回一个字符串。基本上,我使用JSONObject和JSONArray,最后生成一个字符串并返回它。如: 但假设在生成这个JSONObject时,如果我得到任何异常,我希望返回该异常消息。即: 我的问题是,如何正确地将这个异常值作为错误返回,并从ajax调用错误函数中正确地获得这个值?

  • 资源控制器 资源控制器可以让你轻松的创建RESTFul资源控制器,可以通过命令行生成需要的资源控制器,例如: // 生成index模块的Blog资源控制器 php think make:controller index/Blog 或者使用完整的命名空间生成 php think make:controller app\index\controller\Blog 然后你只需要为资源控制器注册一个资源路

  • 问题内容: 我的控制器文件中包含以下内容: 我的服务器代码运行并返回: 但是我得到以下错误: 有人知道我在做什么错吗? 问题答案: 我只是更改为,因为期望一个对象并且期望一个数组。