Angular.js 401 Неразрешенный код статуса

0

Я хочу получить токен доступа для аутентификации. Мой результат сообщения

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) {

        });


}

Изображение 174551

POST https://staj-io-goldenilkay92-1.c9.io/api/v1/oauth/token 401 (неавторизованный)

Теги:
http-status-code-401

2 ответа

1
Лучший ответ

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

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

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

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

var cors= require('cors');

//init first.

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

Сторона клиента

Просто удалите параметры заголовков

//...

$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
    Спасибо. меня устраивает .
0

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

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

  • 0
    Я сравню это.

Ещё вопросы

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