我在我的项目的两个不同页面上有完全相同的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方法不允许"
我不知道什么是唠叨,任何线索?
感谢。
答案 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);
}
});