2017-02-22 5 views
0

У меня Вызывающая расслоение плотной сценарийКак передать ответ 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

с ответом return() -> json ($ results_array); 'строка raw json отображается в URI' fetch-data', и ничего не отображается в журнале консоли. – anagnam

ответ

0

Код работает должным образом.

setInterval(function(){ 

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

},1000); 

и этот вопрос был answered HERE already.

Смежные вопросы