AngularJS: установка правильного заголовка «Referer» для $http

Похоже, что когда вы отправляете запрос с помощью службы $http, заголовок реферера устанавливается на базовый URL-адрес без угловой информации $location.

Как вы собираетесь добавлять $location.path() к этому заголовку для всех запросов?

Наши вызовы API будут регистрировать этот заголовок реферера при возникновении ошибки; однако было бы очень полезно, если бы мы могли хранить фактическое местоположение пользователя («stackoverflow.com/#/question/1234», а не просто «stackoverflow.com/»)


person John    schedule 24.03.2014    source источник
comment
Но это не фактическое местоположение скрипта; это только то, что отображается в адресной строке. Это переменные, которые вызывают ошибку, поэтому вам также необходимо зарегистрировать их.   -  person Blazemonger    schedule 24.03.2014
comment
Все параметры регистрируются; однако было бы неплохо иметь готовый URL-адрес, а не пытаться перепроектировать, когда пользователь основывался на параметрах.   -  person John    schedule 24.03.2014
comment
Возможно, тогда вы можете передать воспринимаемый URL-адрес в качестве параметра?   -  person Blazemonger    schedule 24.03.2014


Ответы (1)


В итоге я сделал что-то вроде этого:

$httpProvider.interceptors.push(function ($location) {
    return {
        request: function (config) {
            config.headers["RefererFullUrl"] = $location.absUrl();
            return config;
        }
    };
});

Не похоже, чтобы браузеры были слишком довольны, если вы попытаетесь изменить URL-адрес «реферера», поэтому я просто называю его как-то иначе и ищу этот заголовок конкретно на сервере.

person John    schedule 24.03.2014