使用 AJAX 在 Laravel 5.3 中删除记录
Posted
技术标签:
【中文标题】使用 AJAX 在 Laravel 5.3 中删除记录【英文标题】:Deleting a record in Laravel 5.3 using AJAX 【发布时间】:2017-02-19 22:10:48 【问题描述】:我收到下一个错误:
jquery-2.2.4.min.js:4 DELETE http://company.dev/admin/portfolio/settings/category/delete/7 500(内部服务器错误)
我不确定它是什么,因为我认为我有正确的路线并且还提供了 csrf 令牌(对 laravel 来说还是相当新的)
路线:
Route::delete('/admin/portfolio/settings/category/delete/id', [
'as' => 'categoryDelete',
'uses' => 'PortfolioController@destroy'
]);`enter code here`
阿贾克斯:
$(".deleteProduct").click(function()
var id = $(this).data("id");
var token = $(this).data("token");
$.ajax(
url: "/admin/portfolio/settings/category/delete/"+id,
type: 'DELETE',
dataType: "JSON",
data:
"id": id,
"_method": 'DELETE',
"_token": token
,
success: function ()
console.log("it Work");
);
console.log("It failed");
);
删除按钮:
<button class="deleteProduct" data-id=" $category->category_id " data-token=" csrf_token() " >Delete Category</button>
删除函数:
public function destroy(Request $request, $id)
Category::find($id)->delete();
return response()->json([
'success' => 'Record has been deleted successfully!'
]);
【问题讨论】:
如果出现令牌问题,它不会是 500 你可以试试:Route::delete('/admin/portfolio/settings/category/delete/id', 'PortfolioController@destroy');
和die('route works')
;内部控制器(销毁功能)。您的请求中是否调用了仅删除 http 方法?
【参考方案1】:
您的控制器或模型有一些错误。可能是语法错误。尝试检查控制台 > 网络 > XHR。如果您使用的是 Google Chrome,则错误 ajax 请求将显示为红色。
【讨论】:
太棒了,我不知道它存在!非常感谢! 我建议检查应包含完整堆栈跟踪而不是控制台输出的应用程序日志,除非您向用户提供完整堆栈跟踪;) @jakub wrona 是有道理的 :)以上是关于使用 AJAX 在 Laravel 5.3 中删除记录的主要内容,如果未能解决你的问题,请参考以下文章
本地主机上 laravel 5.3 中 ajax 发布请求中的 CSRF 令牌不匹配异常
如何在不使用请求的情况下删除 Laravel 5.3 中的会话?