我试图从laravel控制器获取数据,使用'jquery'ajax。但是,我得到了parsererror
。根据laravel文档,它自动设置标头Content-Type= 'application/json'
,如果我们使用response()->json(data)
,我尝试在ajax方面设置相同的标头,但没有区别。我也试过
contentType:'application/json',
dataType: "json",
accept:'application/json',
但他们没有工作。这是我的代码设置:
app.js
var initlides = function () {
return $.ajax({
url: _url,
contentType:'application/json',
dataType: "json",
accept:'application/json',
success: function (data) {
console.log(data)
},
error: function (textStatus, errorThrown) {
console.log(textStatus, errorThrown)
}
});
};
controller.php
public function index()
{
echo $section;
$carousels= array();
$carousel = Carousel::where('section_name', 'intro')->get();
return response()->json($carousel);
}
我搜索了其他类似的问题,但没有他们是有帮助的。请帮忙。
response()->json()只接受数组,这就是你得到错误的原因,你必须使用Collection::toArray
方法将你的集合转换为数组:
$carousel = Carousel::where('section_name', 'intro')->get()->toArray();
return response()->json($carousel);
或者只是做:
$carousel = Carousel::where('section_name', 'intro')->get();
return $carousel->toArray();