如何将Controller中的JSON响应传递回Laravel 5.4中的AJAX成功方法

时间:2017-02-22 15:29:56

标签: php laravel-5

我有一个调用js脚本

setInterval(function(){

    $.get( "/fetch-data", function( data ) {
        console.log(data);
    });

},1000);

我的路线看起来像这样

Route::get('/fetch-data', 'PageController@fetchData');

我的控制器方法

public function fetchData()
{
    $results_array = [];
    $file = new \SplFileObject('file.csv');
    $file->setFlags(\SplFileObject::READ_CSV);

    foreach ($file as $row) {
        $results_array[] = $row[0];
        $results_array[] = $row[1];
        $results_array[] = $row[2];
        $results_array[] = $row[3];
         ...
    }
     return response()->json($results_array);
     //$json = response()->json($results_array);
     //return view('view.blade',compact($json));    
}

请注意,使用return response()->json($results_array);时,原始json文本将直接显示在页面上。不是我想要的。

虽然return view('view.blade',compact($json));返回整个html文件。仍然不是我想要的。

我想要实现的是从控制器返回的原始json文本将从调用js脚本传递给回调。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

代码按预期工作。

setInterval(function(){

$.get( "/fetch-data", function( data ) {        
 // code now works
});

},1000);

这个问题是answered HERE already