405方法不允许在laravel应用程序中进行POST和PUT
Posted
技术标签:
【中文标题】405方法不允许在laravel应用程序中进行POST和PUT【英文标题】:405 Method Not Allowed for POST and PUT in laravel application 【发布时间】:2020-07-07 05:27:28 【问题描述】:我正在尝试在 laravel 中删除并调整全日历中的事件大小,但是当我移动事件时,出现 405 Method Not Allowed 错误消息!..
我的 web.php 文件:
Route::get('calendar', 'FullCalendarController@index');
Route::get('/load-events', 'EventController@loadEvents')->name('routeLoadEvents');
Route::put('/events-update', 'EventController@update')->name('routeEventUpdate');
我的 Blade.php 文件:
<div id='calendar'
data-route-load-events="route('routeLoadEvents')"
data-route-events-update="route('routeEventUpdate')"></div>
我的 .js 文件:
$(function ()
$.ajaxSetup(
headers:
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
);
);
function sendEvent(route, data_)
$.ajax(
url: route,
data: data_,
method: 'POST',
dataType: 'json',
success: function(json)
if(json)
location.reload();
);
function routeEvents(route)
return document.getElementById('calendar').dataset[route];
eventDrop: function(element)
let start = moment( element.event.start ).format("YYYY-MM-DD HH:mm:ss");
let end = moment( element.event.end ).format("YYYY-MM-DD HH:mm:ss");
let newEvent =
_method: 'PUT',
id: element.event.id,
start: start,
end: end
;
sendEvent(routeEvents('routeEventUpdate'), newEvent);
,
【问题讨论】:
【参考方案1】:所以 Laravel 真正理解的请求实际上只有两种:
POST
& GET
PUT
请求是 POST
请求,其方法为 PUT
。
laravel 正在寻找的是请求中的 _method
参数,告诉它这是什么类型的请求。在你的情况下_method: PUT
。
试试这个:
$.ajax(
url: route,
data: data_,
method: 'PUT',
dataType: 'json',
success: function(json)
if(json)
location.reload();
);
【讨论】:
【参考方案2】:您将“put”方法放入您的有效负载数据中,AJAX 函数将无法识别。尝试将方法添加为参数
函数 sendEvent(route, data_, sendMethod) ... 方法:发送方法, ...
然后打电话给我
sendEvent(routeEvents('routeEventUpdate'), newEvent, 'PUT');
【讨论】:
我总是遇到同样的错误:不允许使用 PUT 方法以上是关于405方法不允许在laravel应用程序中进行POST和PUT的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel 5.2 上路由文件路径时出现 405(不允许的方法)