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); 

(не забудьте создать представление, в котором вы отображаете данные)

Другие вопросы по тегам