Laravel从控制器获取数据并发送以查看Ajax

时间:2019-05-10 09:57:44

标签: ajax laravel

我正在尝试从控制器获取数据并将其发送到ajax中。 该脚本位于app.blade.php中。

控制器

public function show()
{
    $number=Order::where('user_id',Auth::user()->id)->count();

    return $number;

}

路线

Route::get('product_number', 'OrderController@show')->name('product_number');

JS

<script type="text/javascript">
$(document).ready(function(){

    $.ajax({
        type: "GET",
        url: "product_number",
        success: function (data) {
            console.log(data);
        },
        error: function () {
            console.log('Error');
        }
    });

});
</script>

在控制台中,它显示了html视图。

2 个答案:

答案 0 :(得分:0)

尝试此操作,以便您可以获取错误

public function show()
{
    try {
        $number=Order::where('user_id',Auth::user()->id)->count();
    } catch (\Exception $e) {
        echo $e->getMessage(); die;
    }
    return $number;
}
$(document).ready(function(){

    $.ajax({
        type: "GET",
        url: "{{url('product_number')}}",
        success: function (data) {
            console.log(data);
        },
        error: function () {
            console.log('Error');
        }
    });

});

答案 1 :(得分:0)

我认为您正在发生错误是因为您使用相同的路线来获取结果

我测试了以下代码,并且可以正常工作。

您的web.php文件

//Is the route that you will type in your browser
Route::get('/showNumber', function () {
    return view('show');
});

//Ajax will request this route
Route::get('/product_number', 'UserController@show');

您的控制器

public function show()
{
    $number=Order::where('user_id',Auth::user()->id)->count();

    //You must return an json response.
    return response()->json(['success' => $number]);
}

您的Javascript代码

<script type="text/javascript">
    $.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    $(document).ready(function(){
         $.ajax({
        url: '/product_number',
        type: 'GET', //is the default type
        dataType: 'json',
        success: function (data) {
            console.log(data);
        },
        error: function (data) {
            console.log(data);
        }
        });
    });

</script>

放入您的html标签

    <meta name="csrf-token" content="{{ csrf_token() }}">