【发布时间】:2018-01-16 14:50:51
【问题描述】:
我有一个 Laravel 帖子应用程序,我可以在其中创建和显示帖子。我现在正在尝试使用 Ajax 调用删除帖子。假设我有 10 个帖子正在显示。当我单击第一篇文章的删除按钮时,我收到 405 Method Not Allowed 错误。当我单击下面任何帖子上的删除按钮时,绝对没有任何反应,没有错误或警告消息。请注意,我的 CSRF 令牌已设置并正在工作。任何帮助或建议将不胜感激。
这是 HTML:
@foreach($posts as $post)
<div class="postContainer" id="post{{ $post->id }}">
<h4 class="postHeading" id="showtitle">{{ $post->title }}</h4>
<p class="post" id="postBody">{{ $post->post }}</p>
<span class="authorName" id="showauthor">{{ $post->author }}</span>
<span class="postDate" id="showpostDate">{{ $post->created_at }}</span>
<input type="submit" name="delete" id="delete" value="Delete" data-id="{{ $post->id }}">
</div>
@endforeach
<div class="message" id="message">
</div>
这是我的 Ajax 调用:
$("#delete").on("click", function(){
var id = $(this).attr('data-id');
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr("content")
}
});
$.ajax({
url: '/index/delete/' + id,
type: "POST",
data: {_method: 'delete'},
success:function(response){
$("#message").append("<div>" + response.message + "</div>");
},
});
});
这是我的路线:
Route::post('/index/delete/{id}', 'HomeController@delete');
这是我的控制器:
public function delete($id){
Post::find($id)->delete();
return redirect('/');
}
【问题讨论】:
-
Id 总是唯一的...
-
将
type: "POST",设置为type: "GET",并检查 -
仅供参考,最好使用
.data('id')而不是.attr('data-id')
标签: javascript php jquery ajax laravel