AngularJS Resource Calling несколько раз

0

Я создаю приложение RESTFul и использую Angular для просмотра. Я хочу использовать ресурсы, так как это лучший подход к нему, я следую инструкциям и сделал некоторые настройки самостоятельно, чтобы включить токен заголовка заголовка, код заканчивается следующим образом:

fcbMixApp.factory('Resources', ['$resource',
    function ($resource) {
        return {
            seminary: function (apiToken) {
                return $resource('api/seminaries/:seminary', {}, {
                    save: {
                        method: 'POST',
                        headers: {
                            'Authorization': 'Bearer ' + apiToken
                        }
                    },
                    update: {
                        method: 'PUT',
                        headers: {
                            'Authorization': 'Bearer ' + apiToken
                        }
                    }
                });
            },
            attendant: function (apiToken) {
                return $resource('api/attendants/:attendant', {}, {
                    save: {
                        method: 'POST',
                        headers: {
                            'Authorization': 'Bearer ' + apiToken
                        }
                    },
                    update: {
                        method: 'PUT',
                        headers: {
                            'Authorization': 'Bearer ' + apiToken
                        }
                    }
                });
            }
        }
    }]);

Но когда я называю это на моем контроллере следующим образом:

var Seminary = Resources.seminary(User.getAuthData().access_token);

Я не ожидаю, что эта строка сделает любой запрос на мой api, но это так. Мой код:

Seminary.query(function (data) {
                $scope.seminaries = data;
            });

Итак, я наконец сделал два звонка.

Что я делаю неправильно, или что я должен изменить.

Заранее спасибо.

Теги:
rest

2 ответа

1

Вы должны установить заголовок с токеном:

    $http.defaults.headers.common["Authorization"] = 'Bearer' + apiToken;

И не в самом ресурсе. Вы должны установить это, когда пользователь регистрируется в первый раз, затем вы будете отправлять его по всем запросам.

Также рассмотрите свой ресурс, выглядящий примерно так, и сделайте отдельный для сопровождающего:

   fcbMixApp.factory('Resources', ['$resource', function ($resource) {
        function setRequestData(data) {
            var requestData = new Object();
            requestData.seminary = data;
            return angular.toJson(requestData);
        }
        return $resource('api/seminaries/:seminary', {}, {
            save: {
                method: 'POST',
                headers: {"Content-Type": "application/json"},
                transformRequest: setRequestData
            },
            update: {
                method: 'PUT',
                headers: {"Content-Type": "application/json"},
                transformRequest: setRequestData
            }
        });
    }]);
  • 0
    Спасибо за строку для установки заголовков с авторизацией после входа в систему, но моя главная проблема заключается в том, что по какой-то причине запрос выполняется дважды и дважды попадает на мой сервер API.
0

Вот решение для добавления заголовков авторизации ресурсов.

AngularJS: Как отправить токен аутентификации с запросами $ resource?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню