我正在尝试使用laravel 5.3中的ajax删除记录,我知道这是常见问题之一,并且已经有很多关于此主题的在线解决方案和教程.我尝试了其中一些,但大多数给了我同样的错误NetworkError:405 Method Not Allowed.我尝试以不同的角度完成这项任务,但我陷入困境,无法找到我错的地方,这就是为什么我将这个问题添加到指南中.
我正在尝试使用脚本来删除记录.
Controller.PHP这样
public function destroy($id)
{ //For Deleting Users
$Users = new usermodel;
$Users = usermodel::find($id);
$Users->delete($id);
return response()->json([
'success' => 'Record has been deleted successfully!'
]);
}
Route::get('/user/delete/{id}', 'UserController@destroy');
在视图中
<button class="deleteProduct" data-id="{{ $user->id }}" data-token="{{ csrf_token() }}" >Delete Task</button>
App.js
$(".deleteProduct").click(function(){
var id = $(this).data("id");
var token = $(this).data("token");
$.ajax(
{
url: "user/delete/"+id,
type: 'PUT',
dataType: "JSON",
data: {
"id": id,
"_method": 'DELETE',
"_token": token,
},
success: function ()
{
console.log("it Work");
}
});
console.log("It Failed");
});
当我点击删除按钮时,它返回错误NetworkError:405方法不允许在控制台中.没有ajax相同的删除功能正常工作.
任何人都可以指导我,我错了,我可以解决这个问题,我想感谢有人指导我这个.谢谢..
解决方法:
而不是使用Route :: get使用Route :: delete.
除了更改类型:’put’在ajax调用中键入:’DELETE’.
附:这段代码
$Users = new usermodel; // Totally useless line
$Users = usermodel::find($id); // Can chain this line with the next one
$Users->delete($id);
可以写成:
usermodel::find($id)->delete();
甚至更短:
usermodel::destroy($id);
请记住 – > delete()将触发一个事件,而:: destroy()则不会.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。