错误 405 (方法不允许) Laravel 5

2022-08-30 11:31:19

我尝试使用jQuery执行POST请求,但我收到错误405(方法不允许),我正在使用Laravel 5

这是我的代码:

jQuery

<script type="text/javascript">
    $(document).ready(function () {
        $('.delete').click(function (e){
            e.preventDefault();
            var row = $(this).parents('tr');
            var id = row.data('id');
            var form = $('#formDelete');
            var url = form.attr('action').replace(':USER_ID', id);
            var data = form.serialize();
            $.post(url, data, function (result){
                alert(result);
            });
        });
    });
    </script>

断续器

{!! Form::open(['route' => ['companiesDelete', ':USER_ID'], 'method' =>'DELETE', 'id' => 'formDelete']) !!}

    {!!Form::close() !!}

控制器

public function delete($id, \Request $request){
        return $id;
    }

Jquery 错误 http://localhost/laravel5.1/public/empresas/eliminar/5 405(方法不允许)。

网址值为

http://localhost/laravel5.1/public/empresas/eliminar/5

并且数据值为

_method=DELETE&_token=pCETpf1jDT1rY615o62W0UK7hs3UnTNm1t0vmIRZ.

如果我改变请求它工作正常,但我想做一个帖子请求。$.get

任何人都可以帮我吗?

谢谢。

编辑!!

路线

Route::post('empresas/eliminar/{id}', ['as' => 'companiesDelete', 'uses' => 'CompaniesController@delete']);

答案 1

该异常表示您正在请求的 HTTP 方法的路由不存在。methodNotAllowed

您的表单设置为发出请求,因此您的路由需要用于接收此请求。DELETERoute::delete()

Route::delete('empresas/eliminar/{id}', [
        'as' => 'companiesDelete',
        'uses' => 'CompaniesController@delete'
]);

答案 2

需要正确设置路由.php文件。

我假设您当前的设置是这样的:

Route::post('/empresas/eliminar/{id}','CompanyController@companiesDelete');

或者别的什么。请改为为删除方法定义路由。

Route::delete('/empresas/eliminar/{id}','CompanyController@companiesDelete');

现在,如果您使用的是路由资源,则用于“DELETE”方法的默认路由名称是 .destroy。请改为在该函数中定义删除逻辑。


推荐