我了解到,您在邮寄到GET路线时通常会遇到这样的错误,但我认为情况并非如此。到目前为止,我发表评论没有任何问题,我不确定为什么突然出现此错误。
在使用其他某些功能时,我可能错误地更改了一些内容
查看:
@auth
<div class='postComments'>
<form method='POST' action=''>
<textarea class='commentSection' name='comment'></textarea>
<input type="hidden" name="user_id" value="{{ Auth::user()->id }}">
<input type="hidden" name="image_id" value="{{ $image->id }}">
<button class='Submit' type='submit' name='commentSubmit'>Comment</button>
</form>
</div>
@endauth
JS:
$('.postComment').on('click', function(event) {
event.preventDefault();
var userId = $("input[name=user_id]").val();
var imageId = $("input[name=image_id]").val();
var comment = $("textarea[name=comment]").val();
$.ajax({
method: 'POST',
url: urlComment,
data: {
userId: userId,
imageId: imageId,
comment: comment,
_token: token
}
}).done(function(response) {
var commentsCount = response.image.comments;
$("textarea[name=comment]").val("");
$('.comments').append('<p>' + response.comment.comment + '</p>');
$('.commentsCount').html(commentsCount + " Comments");
})
});
查看:
Route::post('/comment', 'CommentsController@postComment')->name('comment');
<script>
var token = '{{ Session::token() }}';
var urlComment = '{{ route('comment') }}';
</script>
控制器:
public function postComment(Request $request){
$userId = $request['userId'];
$imageId = $request['imageId'];
$commentText = $request['comment'];
$image = Image::find($imageId);
$comment = new Comment();
$comment->user_id = $userId;
$comment->image_id = $imageId;
$comment->comment = $commentText;
$comment->save();
$image->updateComments();
return response()->json(['comment'=>$comment, 'image'=>$image]);
}
答案 0 :(得分:1)
如果此方法之前有效,并且突然开始抛出MethodNotAllowedException
,则意味着您还需要另外一条GET
路线。
因此,转到web.php
并确保此路线:
Route::post('/comment', 'CommentsController@postComment')->name('comment');
在任何类似路线之前:
Route::get('/comment');
答案 1 :(得分:0)
按钮类不同于我的JavaScript on('click')函数中的类。