2014-05-22 40 views
5

js

próbuję zrobić to, wysyłając żądanie REST API do serwera.

Żądanie powinno być metodą "GET" i zawierać nagłówek "Autoryzacja".

mój kod fabryczny, który komunikuje się z serwerem REST jest taki: "użyj ścisłego";

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' 
     } 
     } 
}); 

problem fitst jest tutaj

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

Jeśli dodać nagłówek zmiany metoda 'Opcje' nie 'GET'. I okazało się, że chodzi o Cors prefligtu coś, ale nie mogę zrozumieć to, jak go wyłączyć ..

więc starałem się zmienić konfigurację w 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'; 

Drugim problemem jest tutaj

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

Powoduje to błąd poniżej.

Cannot set property 'Authorization' of undefined 

Czy istnieje jakieś rozwiązanie, aby wysłać żądanie "GET" z nagłówkiem "Autoryzacja"? dziękuje

+0

Oto dobra odpowiedź na inne pytanie na ten temat: http://stackoverflow.com/questions/25771062/how-to-pass-headers-on-the-fly-to-resource-for-angularjs – Hinrich

Odpowiedz

0

Myślę, że używasz params w niewłaściwy sposób w swojej prośbie o uzyskanie. Spróbuj przełączyć params i nagłówków tak:

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'} 
     } 
}); 

Zmieniłem niestandardowe dostać żądania, ponieważ „get” może być zdefiniowany przez kanciasty już, ale nie jestem pewien:

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

Poza tym, jesteś czy nie potrzebujesz innych nagłówków?

+0

Dzięki ale przełączanie paramerów i nagłówków daje ten sam rezultat. i chcę ustawić nagłówek "GET", a nie niestandardowy nagłówek żądania. –