首页 > 解决方案 > AJAX 数据未提交给 Laravel 控制器 - Laravel 6

问题描述

我设置了两个按钮,单击它们时只是将它们的值发送到我的控制器,然后我试图发回 AJAX HTML 以在主页上显示用户配置文件。id无论我尝试什么,我都无法获得输入到控制器。

这是HTML:

<ul class="signup-li">
    @foreach($participants as $participant)
        <button type="submit" name="id" value="{{$participant->id}}">
            {{$participant->phone}}
        </button>
    @endforeach
</ul>   

这是我的 JS:

$(document).ready(function(){
    $("button").click(function() {
        var id = $(this).val();
        console.log(id);

        $.ajax({
            type:'POST',
            url:'/get-profile/',
            headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}' },
            data: { "id" : id },
            success: function(data){
                console.log('hi');
            },

            error: function(xhr,textStatus,thrownError) {
                alert(xhr + "\n" + textStatus + "\n" + thrownError);
            }
        });
    });
});

这是我的控制器功能:

public function getProfile(Request $request)
{
    $id = $request->input('id');
    Log::info($id);
    $participant = Participant::where('id','=',$id)->first();
    $returnHTML = view('ajax.user-profile')->with('participant', $participant)->renderSections()['content'];

    return response()->json(array('success' => true, 'html'=>$returnHTML));
}

我究竟做错了什么?我尝试记录请求,但没有任何结果。我为此路线禁用了 CSRF。问题是找不到参与者,因为 ID 没有到达控制器。为什么不成功?

标签: phpjqueryajaxlaravel

解决方案


您可以添加dataType: 'json', 到您的$.ajax({...})通话中


推荐阅读