当PUT通过AJAX用于Laravel资源时不允许的方法
我在routes.php中有这个资源:
Route::resource('items', 'ItemsController', ['before' => 'admin_access']);
试图通过AJAX到达ItemsContoller@update
方法,但它正在推出405 Method not allowed
错误:
var $inputs = $('input', row); var id = $(row).find('.edit').data('id'); var data = $inputs.serializeJSON(); data['_token'] = $('input[name=_token]').val(); data['_method'] = 'PUT'; console.debug(data); $.ajax({ url: 'items/' + id, method: 'PUT', dataType: 'json', data: data, complete: function (data) { if (data.success) { itemsTable.ajax.reload(); } } });
id
和data
变量都包含正确的信息。
当我使用PUT作为方法(使用anahkiasen/Former
opener方法)进行标准表单提交时,这很好用。
我在这里想念的是什么?
大多数浏览器无法发送PUT方法,仅限于GET和POST。
尝试将方法更改为POST,但将_method
元素保留在data
数组中以欺骗请求方法。