使用Angular ui-router的HttpContext.Current.Request

时间:2014-10-01 12:26:53

标签: c# angularjs asp.net-web-api

使用Asp.Net我在加载时捕获AngularJS路由的请求。路线为/FST/#/quickstart。我试图用以下方法捕获该路线:

var currentUrl = HttpContext.Current.Request.RawUrl;

但是,RawUrl并不包含#/quickstart子部分。在请求中似乎没有任何东西可以告诉我完整的URL。如何获取目标网址?

1 个答案:

答案 0 :(得分:0)

您可以使用$http拦截器将当前路由添加为您的网络API请求的标头

  $httpProvider.interceptors.push(['$q','$location' function($q, $location) {
        return {
            'request': function(config) {
                config.headers.ClientSideUrl = $location.path();
                return config || $q.when(config);
            },
            'requestError': function(rejection) {
                return $q.reject(rejection);
            },
            'response': function(response) {
                return response || $q.when(response);
            },
            'responseError': function(rejection) {
                return $q.reject(rejection);
            }
        };

    }]);

然后访问标题服务器端:

HttpContext.Current.Request.Headers.GetValues("ClientSideUrl").FirstOrDefault();