Javascript Laravel 5.8试图调用AJAX来删除注释,但加载失败
我正在尝试使用AJAX调用删除配方应用程序中的注释。 它不断给我一个Javascript Laravel 5.8试图调用AJAX来删除注释,但加载失败,javascript,ajax,laravel,Javascript,Ajax,Laravel,我正在尝试使用AJAX调用删除配方应用程序中的注释。 它不断给我一个405错误:方法不允许。不知道它在哪里坏了,我觉得没问题。谁能看一下吗 刀片视图 @foreach($recipe->comments as $comment) <div> @if($comment->name == Auth()->user()->name) <p><a href="/user/{{$comment->n
405错误:方法不允许
。不知道它在哪里坏了,我觉得没问题。谁能看一下吗
刀片视图
@foreach($recipe->comments as $comment)
<div>
@if($comment->name == Auth()->user()->name)
<p><a href="/user/{{$comment->name}}">{{$comment->name}}</a></p>
<p>{{$comment->comment}}</p>
<button class="deleteComment" data-id="{{ $comment->id }}" data-token="{{ csrf_token() }}" >Delete Comment</button>
@else
@endif
</div>
@endforeach
路线
// Delete Comments AJAX
$(".deleteComment").click(function(){
var id = $(this).data("id");
var token = $(this).data("token");
$.ajax(
{
url: "/comment/delete/"+id,
type: 'DELETE',
dataType: "JSON",
data: {
"id": id,
"_method": 'DELETE',
"_token": token,
},
success: function ()
{
console.log("it Work");
}
});
console.log("It failed");
});
Route::delete('comment/delete/{id}', 'CommentsController@destroy');
CommentController@destroy
public function destroy($id)
{
Comment::destroy($id);
return redirect()->back();
}
有人能看到它在哪里断裂吗 我对laravel了解不多,因为我只使用过几次,而且我还在学习,但是您可以尝试将请求类型从
delete
更改为post
。DeleteHTTP请求方法没有主体来承载一些数据,您需要将注释id传递给控制器。这应该起作用:
$.ajax(
{
url: "/comment/delete/"+id,
type: 'POST',
dataType: "JSON",
data: {
"id": id,
"_method": 'DELETE',
"_token": token,
},
success: function ()
{
console.log("it Work");
}
});
console.log("It failed");
});
这里的问题是。您使用的不是
method:'DELETE'
而是type:'DELETE'
,因此JQuery根本不会发出请求,因为它没有方法。
这是因为在jquery的较新版本中,类型更改为方法。如果您使用的是1.9.0之前的jquery版本,请使用type
Route::delete('comment/delete/{id}', 'CommentsController@destroy');
public function destroy(Request $request,$id)
{
Comment::destroy($id);
return ['status'=> true] ;
}
添加此代码您能添加您收到的错误吗?是服务器端的还是浏览器中的?我正在获取AJAX调用末尾的console.log(失败),以防它不起作用。return redirect()->back();这就是返回任何json对象时会遇到的问题work@ShofiullahBabor什么意思?我不应该重定向回去吗?是的,因为您在ajax json中接收,但它不返回json,而是返回重定向,这是错误的。您尝试此返回['status'=>true],然后查看将输出什么仍然不起作用。仍然点击console.log(“它失败”);在脚本的底部…我认为问题在于路由,如果在请求中传递id而不将其附加到url,会发生什么?嗯,可能是这样。我尝试从路由的url中删除它,结果得到:POST 404(未找到)。因此,它将注释id正确地添加到POST请求中,但之后失败。您是否也尝试过将
“\u方法”:“删除”
修改为“\u方法”:“POST”
?是的,先生,我刚刚尝试过。还是给了我404的错误谢谢!!如何使AJAX请求在不重新加载页面的情况下更新DOM?