Laravel - метод возврата 405 GET не разрешен на сервере - PullRequest
1 голос
/ 30 октября 2019

Я использую Laravel и хочу изменить статус включения и отключения с помощью ajax-запроса, он работает на локальном хосте, но когда я хочу использовать его на сервере, он выдает мне эту ошибку:

405GET Method Not Allowed

Это мой AJAX:

<script>
    $(".change").click(function(){
        var id = $(this).data("id");
        $.ajax(
            {
                url: "vouchers/change-status/"+id,
                type: 'put',
                dataType: "JSON",
                data: {
                    "id": id,
                    "_method": 'put',
                    "_token": "{{ csrf_token() }}",
                }

            });

    });

</script>

Здесь находится контроллер

public function changeStatus(Request $request){
        $voucher = Voucher::find($request->id);
        if($voucher->status == 0)
            $voucher->status = 1;
        else
            $voucher->status = 0;
        $voucher->save();
}

и веб

Route::put('vouchers/change-status/{id}', 'VoucherController@changeStatus')->name('change.status.voucher');

Ответы [ 2 ]

0 голосов
/ 31 октября 2019

Атрибут dataType используется только при получении данных с сервера. Вы должны установить contentType в application/json при отправке данных на сервер.

$(".change").on("click", function() {
    var id = $(this).data("id");
    $.ajax({
        type: 'POST',
        contentType: 'application/json',
        dataType: 'json',
        url: "vouchers/change-status/"+id
        headers: {"X-HTTP-Method-Override": "PUT"},
        data: {
            "id": id,
            "_method": 'put',
            "_token": "{{ csrf_token() }}",
        }
    });
});
0 голосов
/ 31 октября 2019

попробуйте это:

$.ajax(
            {
                url: "vouchers/change-status/"+id,
                type: POST,
                dataType: "JSON",
                data: {
                    "id": id,
                    "_method": 'PUT',
                    "_token": "{{ csrf_token() }}",
                }

            }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...