2017-02-22 45 views
0

我有一個調用JS腳本如何通過從控制器JSON響應返回給AJAX的成功方法Laravel 5.4

setInterval(function(){ 

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

},1000); 

和我的路線是這樣的

Route::get('/fetch-data', '[email protected]'); 

我的控制器方法

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腳本的回調。

任何想法?

+0

console.log打印什麼?它不是一個JSON字符串嗎? – trajchevska

+0

使用你的代碼,任何東西都不應該直接顯示在頁面上,php腳本輸出的信息存儲在'data'變量中。如果您在網頁上看到了某些內容,則其他地方正在發生其他事情。 – jeroen

+0

with'return response() - > json($ results_array);'原始json字符串顯示在'fetch-data' URI上,並且控制檯日誌中不顯示任何內容。 – anagnam

回答

0

該代碼按預期工作。

setInterval(function(){ 

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

},1000); 

並且這個問題是answered HERE already

相關問題