2015-06-28 4 views
0

Я хочу получить токен доступа для аутентификации. Мой пост результат какAngular.js 401 Код неавторизованного статуса

POST https://staj-io-goldenilkay92-1.c9.io/api/v1/oauth/token 401 (Несанкционированное)

, но когда я пытаюсь опубликовать с почтальоном он работает.

стороны сервера Заголовки

res.setHeader('Access-Control-Allow-Origin', '*'); 
res.setHeader('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS'); 
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type, Authorization'); 
res.setHeader('Access-Control-Allow-Credentials', 'true'); 
res.header('Content-Type', 'application/json'); 

Угловой Код

Сервис

function signIn(data) { 

    var deferred = $q.defer(); 


    $http.post('https://staj-io-goldenilkay92-1.c9.io/api/v1/oauth/token', data, 
     {headers: {'Content-Type': 'application/x-www-form-urlencoded'}} 
    ) 
     .success(function (response, status, headers, config) { 
      deferred.resolve(response); 
     }).error(function() { 
      deferred.reject("Failed to login"); 
     }); 

    return deferred.promise; 

} 

контроллер

vm.loginData = { 

    'client_id': 'client', 
    'client_secret': 'client', 
    'grant_type': 'password', 
    'username': '', 
    'password': '' 
}; 


vm.login = function login() { 

    loginService.signIn(vm.loginData).then(function (result) { 
      vm.signInResult = result; 

     }, 
     function (data) { 

     }); 


} 

Postman Result

POST https://staj-io-goldenilkay92-1.c9.io/api/v1/oauth/token 401 (Несанкционированное)

ответ

1

Вот предложения по решению вашей проблемы;

Использовать модуль cors (не обязательно);

стороне сервера

Я предполагаю, что ваш паспорт код работает правильно.

var cors= require('cors'); 

//init first. 

app.options(cors({origin'*'})); //Use your origins. 
app.use(cors({origin'*'}));  //Use your origins. 

Client Side

Просто удалите заголовки вариантов

//... 

$http.post('https://staj-io-goldenilkay92-1.c9.io/api/v1/oauth/token', data) 
    .success(function (response, status, headers, config) { 
     deferred.resolve(response); 
    }).error(function() { 
     deferred.reject("Failed to login"); 
    }); 
//... 
+0

Большое спасибо. меня устраивает . – previousdeveloper

0

Если один POST работает, а другой нет, то ваш angularjs $ HTTP запроса делает запрос с неправильными параметрами.

Я предлагаю вам получить http-анализатор (например, Fiddler) и сравнить фактический запрос, сделанный Postman, и запрос, сделанный вами угловым приложением.

+0

я сравню его. – previousdeveloper

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