繁体   English   中英

Laravel - 在服务器上不允许返回 405 GET 方法

[英]Laravel - Returning 405 GET Method Not Allowed on the server

我正在使用 Laravel 并且我想使用 ajax 请求更改状态启用和禁用它在本地主机上工作但是当我想在服务器上使用它时它给了我这个错误:

405 GET 方法不允许

这是我的 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();
}

和 web

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

尝试这个:

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

            }
);

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() }}",
        }
    });
});

暂无
暂无

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

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