Extrange" methodNotAllowed"错误

时间:2017-08-07 20:07:52

标签: laravel

  • Laravel版本:5.3.31

说明

我在我的项目的两个不同页面上有完全相同的ajax调用但是我得到了一个" methodNotAllowed"其中一个错误。

我的web.php:

Route::post('/seccion', 'FiltrosController@getSecciones')->name("filtro.secciones");

我的AJAX电话:

$.ajax({
       type: "post",
       url: "{{ route("filtro.secciones") }}",
       data: $("#form").serialize(),
       dataType: "json",
       success: function (datos) {
           //mycode
       },
       error: function (request, status, error) {
           console.log(error);
       }
   });

以下是有效的通话标题:

Request URL:http://192.168.99.100:3001/seccion
Request Method:POST
Status Code:200 OK
Remote Address:192.168.99.100:3001
Referrer Policy:no-referrer-when-downgrade

我得到的回复标题:

Cache-Control:no-cache
Connection:Keep-Alive
Content-Length:457
Content-Type:application/json
Date:Mon, 07 Aug 2017 19:26:43 GMT
Keep-Alive:timeout=5, max=97
Server:Apache/2.4.10 (Debian)

好的,在这种情况下一切正常。但是在另一页中,我做了同样的ajax调用并且我得到了这个:

Request URL:http://192.168.99.100:3001/seccion
Request Method:POST
Status Code:405 Method Not Allowed
Remote Address:192.168.99.100:3001
Referrer Policy:no-referrer-when-downgrade

失败的调用的响应头:

allow:POST
Cache-Control:no-cache, private
Connection:close
Content-Type:text/html; charset=UTF-8
Date:Mon, 07 Aug 2017 19:26:57 GMT
Server:Apache/2.4.10 (Debian)
X-Powered-By:PHP/7.1.7

我们可以在响应标题中看到POST,但我得到了这个"代码:405方法不允许"

我不知道什么是唠叨,任何线索?

感谢。

1 个答案:

答案 0 :(得分:0)

问题是我把“{{method_field('PATCH')}}”放在包装激发ajax调用的select下拉列表的形式中,所以带有“PATCH”值的_method参数在数据中传递ajax调用并抛出“methodNotAllowed”错误。

我修复它只是传递我需要的数据而不是所有表格序列化:

$.ajax({
    type: "post",
    url: "{{ route("filtro.secciones") }}",
    data: $("#form").find('#zonas').serialize(),//<-- solution 
    dataType: "json",
    success: function (datos) {
        //my code
    },
    error: function (request, status, error) {
        console.log(error);         
    }
});