Я пытаюсь использовать следующий код в приложении angular.js для переноса данных из одной базы данных в другую. Это одна из частей функции, чтобы получить авторизационные учетные данные для отправки POST в принимающую базу данных. Однако это не работает. Моя первая функция, ATsintegrationsService.beginBackfill(clientIDs)
, возвращает список претендентов в порядке. Ошибка начинается с getAuthToken()
. Несмотря на то, что он попадает в URL с правильными данными, я продолжаю получать сообщение об ошибке в сервисе. Может кто-нибудь пролить свет на то, что здесь происходит, я бы очень признателен. Я не понимаю, что может вызвать проблемы.Угловая цепочка HTTP вызывает ошибки
Основная функция (срабатывает, нажав кнопку применить):
$scope.beginBackfill = function() {
$scope.loading = true;
AtsintegrationsService.beginBackfill($scope.clientids).then(function (response) {
$scope.applicants = response.data;
$scope.getAuthToken();
$scope.createSuccess = true;
$scope.loading = false;
},
function(error) {
$scope.loading = false;
$scope.createFailure = true;
console.log("Failure to backfill data - " + error);
});
};
Вот $scope.getAuthToken()
:
$scope.getAuthToken = function() {
AtsintegrationsService.getAuthToken().then(function (response) {
$scope.authToken = response.data;
console.log($scope.authToken);
},
function(error) {
$scope.loading = false;
$scope.createFailure = true;
console.log("Failure to obtain auth token - " + error);
console.log(error);
});
};
И, наконец, сервис-код для getAuthToken()
- некоторые данные были удалены, и указывается по {snip}
.
srvc.getAuthToken = function() {
var url = {snip};
return $http({
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
responseType: 'json',
method: 'POST',
url: url,
data:
{
"grant_type": "{snip}",
"client_id": {snip},
"client_secret": "{snip}"
}
})
.success(function (data) {
console.log("We have a proper return.");
return data;
})
.error(function (data) {
console.log("There was an error in the service.");
return data;
});
};
Это сервис getAuthToken на 'url = {snip}' возможно, используя OAuth 1 или 2? Какой тип grant_type используется? – Kenney
grant_type = client_credentials Я проверил маршрут в Почтальоне, и он отлично работает. Но, когда я делаю то же самое «вещество» в своем коде, все, что я получаю, это console console.ogog. EDIT: Кроме того, добавляется, что используется OAuth 2. – lmcphers
Хорошо, просто заглянул в почтальон, и единственные варианты там, чтобы добавить маркеры либо к URL-адресу, либо к HTTP-заголовкам. Я не знаю, как эта служба реализована (на стороне сервера) и что она принимает, но, возможно, вам нужно отправить поля в 'data: {..}' как параметры GET в URL. – Kenney