Laravel 5.1 - Ajax调用错误500(仅用于一个函数)

时间:2015-12-15 17:11:39

标签: php jquery ajax laravel-5.1

我有一个奇怪的问题,我无法找到解决方案。

Ajax代码:

$("#details-comment-btn").click(function(e){
    e.preventDefault();
    var functionType = "comment";
    var articleid=$('input[name=articleId]').val();
    var owner_id=$('input[name=owner_id]').val();
    var first_name=$('input[name=owner_first_name]').val();
    var last_name=$('input[name=owner_last_name]').val();
    var token=$('input[name=_token]').val();
    var commentBody = $('textarea[name=commentBody]').val();
    console.log(articleid);

    $.ajaxSetup({headers : {'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')}});

    $.ajax({
        type: "POST",
        url:articleid,
        data:
        {
            'user_id': owner_id,
            'commentBody': commentBody,
            'functionType': functionType,
            'article_id': articleid,
            '_token': token
        },
        success: function(){
            console.log(articleid);
            $('#newcomment').append('<div class="comment" id="newCommentDiv">');
                $('#newCommentDiv')
                        .append('<a href="/user/'+ owner_id +'/' + first_name + '/' + last_name + '" class="user">' + first_name + " " + last_name + '</a>')
                        .append('<span class="date">Just Now</span>')
                        .append('<p class="body">'+ commentBody + '</p>');
            $('#newcomment').fadeIn();
        }
    });
});

但是,我总是得到同样的错误

  

POST http://project.dev/articles/1 500(内部服务器错误)

这是我对帖子的路线

Route::post('articles/{id}', 'DeleteController@deleteWork');

它显示的链接很好,所以我不确定为什么它会给我错误。

奇怪的是,其他需要相同URL的其他ajax调用没有任何问题。

例如,来自另一个AJAX调用的代码可以正常工作并使用相同的&#34; url&#34;。

$('.articleFavo').click(function(e){
    e.preventDefault();
    var userid= $('input[name=userID]' ).val();
    var functionType = 'favorite';
    var articleid=$('input[name=articleId]').val();
    var token=$('input[name=_token]').val();

    $.ajaxSetup({headers : {'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')}});

    $.ajax({
        url:articleid,
        type: "post",
        data:
        {
            'functionType': functionType,
            'user_id': userid,
            'article_id': articleid,
            '_token': token
        },
        success: function(){
            console.log(articleid);
            $('#favoriteBtn'+ articleid).css({display: 'none'})
            $('#unfavoriteBtn'+ articleid).fadeIn();
        }
    });
});

1 个答案:

答案 0 :(得分:0)

在控制器的第378行,您有以下一行:

$article_id = input::get('articleId');

但是,您在AJAX调用中发送了“article_id”。在控制器中更新此行可能会更好(与代码的其余部分保持一致)

$article_id = input::get('article_id');