首页 > 解决方案 > 如何发出 AJAX 请求并用 laravel 响应?

问题描述

当我执行vardump. 我需要获取资源并显示一个模式,但我没有从 AJAX 得到响应没有方法返回 AJAX

$.ajax({
    type: "POST",
    url: "/modalAjax",
    data: "id=" + obj.id,  
    dataType: 'json',
    success: function() {
        $('#modalEdit').modal('show');
    },
    error: function() {

    }
});

控制器

public function modalAjax(Request $request) {        
    var_dump($request); 
    die();
    return Response::json($request);        
}

标签: ajaxlaravel

解决方案


假设您有这样的视图设置

{{-- Add a CSRF token --}}
<meta name="csrf-token" content="{{ csrf_token() }}">
{{-- Just to avoid Vue console warning --}}
<div id="app"></div>
{{-- Include the JQuery library --}}
<script src="/js/app.js"></script>
<script>
    // add csrf header to all Ajax requests
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    var obj = {id: 1}; // Just an example when reproducing
    $.ajax({
        type: "POST",
        url: "/modalAjax",
        data: "id=" + obj.id,
        dataType: 'json',
        success: function(data) {
            console.log(data); // Do anything with the data here
            $('#modalEdit').modal('show');
        },
        error: function() {
        }
    });
</script>

像这样的路线

// HomeController is just an example, link to your own
Route::post('/modalAjax', 'HomeController@modalAjax');

您可以像这样访问控制器中的请求数据

public function modalAjax(Request $request)
{
    // Do something with $request->id
    return response()->json([
        'id' => $request->id
    ]);
}

现在这将按原样返回收到的ID,不知道你想在那里做什么¯\_(ツ)_/¯

现在你会在控制台中得到它,并且引导模式应该显示

{"id":"1"}

希望这可以帮助


推荐阅读