注释时突然开始获取“ Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException”

时间:2018-07-29 12:18:43

标签: php laravel

我了解到,您在邮寄到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]);
    }

2 个答案:

答案 0 :(得分:1)

如果此方法之前有效,并且突然开始抛出MethodNotAllowedException,则意味着您还需要另外一条GET路线。

因此,转到web.php 并确保此路线:

Route::post('/comment', 'CommentsController@postComment')->name('comment');

在任何类似路线之前:

 Route::get('/comment');

答案 1 :(得分:0)

按钮类不同于我的JavaScript on('click')函数中的类。