angular.js $resources настройка Заголовок авторизации

js

то, что я пытаюсь сделать, это сделать ЗАПРОС REST API на сервер.

Запрос должен быть методом «GET» и включать заголовок «Авторизация».

мой заводской код, который связывается с сервером REST, похож на этот «использовать строго»;

angular.module('mabidualApp')
  .factory('User', function ($resource, config) {

    return $resource(config.API+':url/:id', {
        url: '@url', id: '@id'
    }, { //parameters default
      auth: {
        method: 'POST',
        params: {
            url: "token",
        }
    },
      get: {
        method: 'GET',
        headers:{'Authorization':'Bearer oLDMYrJD0Qg15Nhv7N-H6w'} ,
        params: {
          url:"users",
          id:'me'
        }
      }
});

самая подходящая проблема здесь

headers:{'Authorization':'Bearer oLDMYrJD0Qg15Nhv7N-H6w'} ,

Если я добавлю заголовок, метод изменится на «ОПЦИИ», а не на «ПОЛУЧИТЬ». Я узнал, что это что-то о предварительной проверке CORS, но я не мог понять, как это отключить.

поэтому я попытался изменить свою конфигурацию в app.js

  .config(function($locationProvider, $routeProvider, $httpProvider) {
    $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
    $httpProvider.defaults.headers.get['Authorization'] ='Bearer oLDMYrJD0Qg15Nhv7N-H6w';

вторая проблема здесь

$httpProvider.defaults.headers.get['Authorization'] ='Bearer oLDMYrJD0Qg15Nhv7N-H6w';

Это делает ошибку ниже.

Cannot set property 'Authorization' of undefined

Есть ли решение для отправки запроса «GET» с заголовком «Авторизация»? спасибо


person Eun Bit Hwang    schedule 22.05.2014    source источник
comment
Вот хороший ответ на другой вопрос по этой теме: stackoverflow.com/questions/25771062/   -  person Hinrich    schedule 19.10.2015


Ответы (1)


Я думаю, что вы неправильно используете параметры в своем запросе на получение. Попробуйте переключить параметры и заголовки следующим образом:

angular.module('mabidualApp')
  .factory('User', function ($resource, config) {

    return $resource(config.API+':url/:id', {
        url: '@url', id: '@id'
    }, { //parameters default
      auth: {
        method: 'POST',
        params: {
            url: "token",
        }
    },
      get_auth: {
        method: 'GET',
        params: {
          url:"users",
          id:'me'
        },
        headers: {'Authorization':'Bearer oLDMYrJD0Qg15Nhv7N-H6w'}
      }
});

Я изменил ваш пользовательский запрос на получение, потому что «get» может быть уже определен angular, но я не уверен:

$httpProvider.defaults.headers.get_auth['Authorization'] ='Bearer oLDMYrJD0Qg15Nhv7N-H6w';

Кроме того, вы уверены, что вам не нужны никакие другие заголовки?

person Pak    schedule 22.05.2014
comment
Спасибо, но переключение параметров и заголовка приводит к тому же результату. и я хочу установить заголовок «GET», а не пользовательский заголовок запроса. - person Eun Bit Hwang; 23.05.2014