如何向每个Angular.js $ http请求添加添加请求参数(例如,启动xdebug会话)

时间:2015-08-01 11:09:05

标签: angularjs rest xdebug

我的混合应用程序基于AngularJS并使用php REST api。

我想直接从我的Angular应用程序调试php api,而不是使用REST控制台或Postman。这将节省大量时间,特别是对于POST和PUT请求。

为了做到这一点,我需要为每个请求添加一个参数,如下所示:

http://localhost:8000/api/contacts?XDEBUG_SESSION_START=PHPSTORM

我可以配置$ http吗?

1 个答案:

答案 0 :(得分:12)

您可以使用httpInterceptor(官方$ http documentation包含更多信息)

// register the interceptor as a service
$provide.factory('xdebugInterceptor', function($q) {
  return {
    // optional method
    'request': function(config) {
      // do something on success

      // !!! adjust the config object
      // add request param XDEBUG_SESSION_START=PHPSTORM
      // it will be added to every made request

      config.params = config.params || {};
      config.params.XDEBUG_SESSION_START: "PHPSTORM";

      return config;
    },

    // optional method
   'requestError': function(rejection) {
      // do something on error
      return $q.reject(rejection);
    },


    // optional method
    'response': function(response) {
      // do something on success
      return response;
    },

    // optional method
   'responseError': function(rejection) {
      // do something on error
      return $q.reject(rejection);
    }
  };
});

// make this conditional so you use it only in DEV mode
$httpProvider.interceptors.push('xdebugInterceptor');