我对laravel并不陌生,也没有太多使用AJAX的经验。我几天来一直在努力解决问题,希望有人能指出正确的方向。
我在一个视图中使用Chart.js和Google Maps API。一切都可以初始化,所以那里没有问题。我在地图上绘制了一些标记,并在Chart.js中加载了数据集。单击标记时,我想在Chart.js中加载新数据集。我正在尝试使用AJAX与另一个数据集调用控制器函数。没有错误返回,来自AJAX调用的控制台日志正在工作,但未调用MapController中的函数。
我试图用Postman在/ map路由上进行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调用永远不会到达该函数。
我希望有人可以告诉我我在这里做错了。
答案 0 :(得分:0)
请为您的ajax请求尝试使用以下结构:
Nothing?
也许您的调试 $.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>"