2015-11-05 4 views
0

Я пытаюсь использовать следующий код в приложении 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; 
    }); 
}; 
+0

Это сервис getAuthToken на 'url = {snip}' возможно, используя OAuth 1 или 2? Какой тип grant_type используется? – Kenney

+0

grant_type = client_credentials Я проверил маршрут в Почтальоне, и он отлично работает. Но, когда я делаю то же самое «вещество» в своем коде, все, что я получаю, это console console.ogog. EDIT: Кроме того, добавляется, что используется OAuth 2. – lmcphers

+0

Хорошо, просто заглянул в почтальон, и единственные варианты там, чтобы добавить маркеры либо к URL-адресу, либо к HTTP-заголовкам. Я не знаю, как эта служба реализована (на стороне сервера) и что она принимает, но, возможно, вам нужно отправить поля в 'data: {..}' как параметры GET в URL. – Kenney

ответ

0

Мы выяснили, что проблема была с заголовками CORS; код у меня был в порядке.

Смежные вопросы