AJAX调用触发控制器功能

问题描述 投票:0回答:1

我是新来laravel并没有得到与AJAX太多的经验无论是。我一直在挣扎了几天的一个问题,我希望有人能指出我在正确的方向。

我使用chart.js之和在一个视图中的谷歌地图API。一切都初始化细所以没有问题存在。我已经绘在地图上的几个标记,并在chart.js之加载的数据集。我想点击一个标记时,在chart.js之加载新的数据集。我试图通过使用AJAX调用另一个数据集中控制器功能。没有错误返回,从AJAX调用控制台日志是工作,但在MapController的功能不会被调用。

我试图做邮差/地图路线上的POST,这似乎工作确定。

AJAX调用的视图

$.ajax({ 
            url: "/map",
            type: "POST",
            data: "",
            headers: {"X-CSRF-TOKEN": $("meta[name="csrf-token"]").attr("content")},
            success: console.log("AJAX END")
            });

路线

Route::post('/map', 'MapController@NewChart');

控制器功能

    public function NewChart()
{

    echo "<script>console.log('NewChart function called');</script>";

    $chart = new chart;
    $chart->labels(['Q1', 'Q2', 'Q3', 'Q4']);
    $chart->dataset('2019', 'line', [100, 10, 4, 10]);
    $chart->dataset('2018', 'line', [5, 5, 5, 5]);

    return view('map', ['chart' => $chart]);

}

没有被触发从NewChart功能控制台日志,以便AJAX调用从未达到的功能。

我希望有人能告诉我什么,我做错了。

ajax laravel controller maps chart.js
1个回答
0
投票

请尝试使用下面的结构为您的Ajax请求:

  $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });
  $.ajax({
            url: "/map",
            type: 'POST',
            data: {},
            success: function (data) {    
                console.log("AJAX END");
            }
        });

也许有只是你的调试"<script>console.log('NewChart funtion called');</script>"一个问题,但一切工作正常。只是尝试使用返回的数据。

success: function (data) {    
                $('#someDiv').html(data);
            }
© www.soinside.com 2019 - 2024. All rights reserved.