我正在尝试从控制器获取数据并将其发送到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视图。
答案 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)
我认为您正在发生错误是因为您使用相同的路线来获取结果
我测试了以下代码,并且可以正常工作。
//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]);
}
<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>
<meta name="csrf-token" content="{{ csrf_token() }}">