错误 405(发出 Ajax 请求时不允许使用该方法)

Posted

技术标签:

【中文标题】错误 405(发出 Ajax 请求时不允许使用该方法)【英文标题】:Error 405 (Method Not Allowed While Making an Ajax Request) 【发布时间】:2018-02-28 17:54:51 【问题描述】:

这是我用来发出 Ajax 请求的 jQuery 代码:

$(".rowClick tr").click(function()
                
                    var id = $(this).data("id");

                    $.ajaxSetup(
                        headers: 
                            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                        
                    );

                    $.ajax(
                        url: 'example/',
                        type: 'POST',
                        data: id: id,
                    )
                    .done(function() 
                        console.log("success");
                    );
                )

这是我写的路由代码:

Route::get('example/','example@exampleDetailController');

每当我发出 ajax 请求以在此 URL 上发布时,它都会给我一个 405(不允许的方法)。

为什么会出现这个错误?

【问题讨论】:

也许可以试试type: 'GET', 【参考方案1】:

因为您的 Ajax 请求是以 POST 提交的,但您将路由注册为 GET

改成:

Route::post('example/','example@exampleDetailController');

您可以阅读有关路由和其他方法的更多信息: https://laravel.com/docs/5.5/routing

【讨论】:

以上是关于错误 405(发出 Ajax 请求时不允许使用该方法)的主要内容,如果未能解决你的问题,请参考以下文章

jQuery .ajax() 405(不允许的方法)/跨域

在 Spring MVC 中映射 Ajax 请求:不允许出现错误 405 方法

来自 .aspx 页面的带有授权标头的 Ajax 发布请求给出错误“选项 405(不允许的方法)”

jQuery .ajax() POST 请求抛出 405(不允许的方法)但 GET 不会

错误:(405) 将文件上传到 https 时不允许使用方法

使用 Python Tornado 的 Ajax 请求获得 405