我正在将AngularJS与UI-Router一起使用,并尝试将查询参数附加到我网站上所有http请求的网址上。
我在后端有一个OAuth系统,之前在所有请求中都使用了授权标头,但为了保持向后兼容性 - 发现我必须将带有用户标识的url参数应用到后端。
我的问题是,我不能在应用程序的配置部分使用$ httpInterceptor,因为在应用程序的那一点我没有当前用户,并且无法注入$ http来解析当前用户,因为这会产生循环依赖。
我试图在应用的运行部分使用$ http.defaults.transformRequest,但似乎无法将参数附加到网址。
有没有办法在整个应用程序的每个REST请求上编写它?
答案 0 :(得分:0)
我当前的项目中遇到过类似的问题。
为了解决这个问题,我在app bootstapping&之前手动请求当前用户信息。将其存储在localStorage
。
然后引导app&在配置部分,您将可以访问当前用户信息。
提示:要在app bootstrap之前获取用户信息,您仍然可以通过手动注入来使用$http
服务:
angular.injector(['ng']).get('$http');