我正在做一个前端是AngularJS的项目;后端是Laravel4.
我使用barryvdh的larvel -debugbar包作为调试器
我的问题是debugbar显示数据时第一次加载页面或刷新页面
但是当我调用api throw angular resource时,它是不捕获的。
我尝试了AJAX调用配置,张贴在文档中,但仍然不工作。
配置文件:-
<>之前/*|--------------------------------------------------------------------------|捕获Ajax请求|--------------------------------------------------------------------------|Debugbar可以捕获Ajax请求并显示它们。如果你不想要这个。因为错误),您可以使用此选项来禁用通过报头发送数据。|*/'capture_ajax' => true,之前And In My Controller:-
<>之前Debugbar::addMessage('Another message', 'mylabel');Debugbar:警告("小心…");Debugbar: sendDataInHeaders ();之前和
在网上搜索了很长时间后,我找到了这个问题的解决方案
请将此代码添加到您的app.js
<>之前.factory('httpInterceptor', function($q) {Var handle_phpdebugbar_response = function(response) {if (phpdebugbar && phpdebugbar. ajaxhandler) {Var headers = response && response。Headers && response.headers();If (!headers) {返回;}var headerName = phpdebugbar.ajaxHandler.headerName + '-id';var debugBarID = headers[headerName];if (debugBarID) {phpdebugbar。loadDataSet (debugBarID (ajax));}}};返回{请求:函数(配置){返回config || $q.when(config);},响应:function(Response) {If (response || $q.when(response)) {handle_phpdebugbar_response(响应);返回响应|| $q.when(response);}},responseError:函数(响应){handle_phpdebugbar_response(拒绝);返回q.reject美元(响应);}};})之前<>之前过程(函数(httpProvider美元){美元httpProvider.interceptors.push("httpInterceptor");})之前这个在angular模块ng-phpdebugbar
(Laravel5)
不返回响应,而是发送给视图:
return View::make('debug', ['data' => $response]);
不是return response()->json($response);
(不要忘记创建回显数据的视图)