Laravel-Debugbar не перехватывает AJAX-вызов (Angular Call)
Я работаю над проектом, внешний интерфейс которого - AngularJS, а Backend - Laravel4.
И я использую пакет https://github.com/barryvdh/laravel-debugbar качестве отладчика
Моя проблема - отладочная панель, отображающая данные при первой загрузке страницы или обновлении страницы
Но это не бросается в глаза, когда я называю Api throw Angour Resourse.
Я попытался настроить вызов AJAX, как указано в документации, но все еще не работает.
В конфигурационном файле: -
/ * | ------------------------------------------------- ------------------------- | Захват Ajax-запросов |-------------------------------------------------------------------------- | | Панель отладки может захватывать запросы Ajax и отображать их. Если вы не хотите этого (т.е. из-за ошибок), | Вы можете использовать эту опцию, чтобы отключить отправку данных через заголовки. | */ 'capture_ajax' => true,
И в моем контроллере: -
Debugbar:: addMessage ("Другое сообщение", "mylabel"); Debugbar::warning('Берегись..'); DebugBar:: sendDataInHeaders ();
-ND
2 ответа
После долгого поиска в Интернете я получил решение этой проблемы
Пожалуйста, добавьте этот код в ваш app.js
.factory ('httpInterceptor', function ($ q) { var handle_phpdebugbar_response = function (response) { if (phpdebugbar && phpdebugbar.ajaxHandler) { var headers = response && response.headers && response.headers (); if (! заголовки) { вернуть; } var headerName = phpdebugbar.ajaxHandler.headerName + '-id'; var debugBarID = headers[headerName]; if (debugBarID) { phpdebugbar.loadDataSet(debugBarID, ('ajax')); } } }; вернуть { request: function(config) { возврат конфигурации || $ Q.when(конфигурация); }, ответ: функция (ответ) { if (response || $q.when(response)) { handle_phpdebugbar_response(ответ); обратный ответ || $ Q.when(ответ); } }, responseError: function (response) { handle_phpdebugbar_response (отказ); return $ q.reject (response); } }; })
.config (function ($ httpProvider) { $ HttpProvider.interceptors.push('httpInterceptor'); })
Этот находится в угловом модуле ng-phpdebugbar
(Laravel5)
Вместо того, чтобы возвращать свой ответ, отправьте его на просмотр:
return \View::make('debug', ['data' => $response]);
вместо
return response()->json($response);
(не забудьте создать представление, в котором вы отображаете данные)