Я создаю приложение 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;
});
Итак, я наконец сделал два звонка.
Что я делаю неправильно, или что я должен изменить.
Заранее спасибо.
Вы должны установить заголовок с токеном:
$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
}
});
}]);
Вот решение для добавления заголовков авторизации ресурсов.
AngularJS: Как отправить токен аутентификации с запросами $ resource?