繁体   English   中英

405 方法不允许,PATCH 不起作用。 Laravel、Ajax、Jquery、引导模式

[英]405 Method not Allowed, PATCH not working. Laravel, Ajax, Jquery, bootstrap modal

在 Laravel 中,我有一个 405 错误,但奇怪的是,当我想编辑一些数据并单击“更新”时,它不会刷新或加载页面。 当我自己刷新页面时,更新已设置! 只有我收到错误 405 PATCH 方法不允许。 我在互联网上做了一些搜索,但找不到如何解决这个问题。 我发现的事情就像检查您的 apache2 配置,添加 csrf 字段,制作表单操作帖子并放置 {!! method_field('patch') !!} 里面。 我已经尝试了很多东西。

有人可以帮助我解决这个问题! 非常感谢

我的项目路线:

Route::resource('project', 'ProjectViewController');

我的项目控制器

public function update(Request $request, $id)
{ DB::table('projects')
    ->where('id', $id)
    ->update($request->all()); return redirect('')->with('success', 'Project has been updated'); 

}

我的 Jquery Ajax :

$('.modal-footer').on('click', '.edit', function() {
    $.ajax({
        method: 'PATCH',
        url: '{{route('project.update', $project->id)}}',
        data: {
            '_token': $('input[name=_token]').val(),
            'id': $('#fid').val(),
            'project_name': $("#pn").val(),
            'date': $('#Da').val(),
            'location': $('#Lo').val(),
            'first_name': $('#FN').val(),
            'last_name': $('#LN').val(),
            'city_name': $('#CN').val(),
            'email': $('#EM').val(),
            'number': $('#NUM').val()
        },
        success: function(data){if(data.success == true){ // if true (1)
  setTimeout(function(){// wait for 5 secs(2)
       location.reload(); // then reload the page.(3)
  }, 2000); }},

您需要使用POST作为方法,并且需要定义_method=post您发送的数据。 请尝试以下代码。

$('.modal-footer').on('click', '.edit', function() { $.ajax({ method: 'POST', url: '{{route('project.update', $project->id)}}', data: { '_method': 'PUT', '_token': $('input[name=_token]').val(), 'id': $('#fid').val(), 'project_name': $("#pn").val(), 'date': $('#Da').val(), 'location': $('#Lo').val(), 'first_name': $('#FN').val(), 'last_name': $('#LN').val(), 'city_name': $('#CN').val(), 'email': $('#EM').val(), 'number': $('#NUM').val() }, success: function(data){if(data.success == true){ // if true (1) setTimeout(function(){// wait for 5 secs(2) location.reload(); // then reload the page.(3) }, 2000); }},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM