'jquery''aja'x提升解析器错误,同时从laravel控制器获取数据

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

我试图从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);
}

我搜索了其他类似的问题,但没有他们是有帮助的。请帮忙。

javascript php jquery ajax laravel
1个回答
0
投票

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();
© www.soinside.com 2019 - 2024. All rights reserved.