2015-09-06 7 views
6

リクエストにオーソリゼーションヘッダーを挿入しようとしていますが、動作しません。Angularjsがオーソリゼーションヘッダーを設定しました

私はこれを使用しています:

var config = {headers: { 
    'Authorization': token 
    } 
}; 
return $http.get('http://localhost:3000/apis/users/all', config); 

をし、また私が試したこの:

Accept:*/* 
Accept-Encoding:gzip, deflate, sdch 
Accept-Language:es-ES,es;q=0.8,ca;q=0.6,en;q=0.4,gl;q=0.2 
Access-Control-Request-Headers:accept, authorization 
Access-Control-Request-Method:GET 
Connection:keep-alive 
Host:localhost:3000 
Origin:http://localhost:8000 
Referer:http://localhost:8000/ 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4)   AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36 
$http.defaults.headers.common['Authorization'] = token; 

しかし、両方のケースで、私はバックエンドのリクエストでこのヘッダを得た

私はこのようなものが必要です:

Authorization: token 

しかし、私はこれだ:

Access-Control-Request-Headers:accept, authorization 

はその後、私は任意の場所にトークン値を表示できません。

私はバックエンドのためexpressjsを使用していますが、私はCORSのためにこれを使用して:

app.use(function(req, res, next) { 
    res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization'); 
    next(); 
    }); 

はまた、Chromeの拡張機能アドバンスレストクライアントでのテストは、それが正常に動作していると言います。リクエストヘッダーには、Authorization:valueOfToken ..

ありがとうございます。

+0

uは、今までにこれに対する答えを得ましたか。 – Pinch

答えて

13

承認を明白にすることはできません。

$http.defaults.headers.common['Authorization'] = 'Basic ' + token; 

または

$http.defaults.headers.common['Authorization'] = 'Bearer ' + token; 
1

よう

何かがこれを試してみてくださいそのBasicまたはBearer認証を乗り切る指定:

$http({ 

url : "127.0.0.1/login", 
method : 'GET', 
headers : { 
     Content-Type : 'application/json',  
     Authorization: token 
     } 
}).success(function(data){ 
    alert("login Successfully"); 
}).error(function(error){ 
    alert("login error"); 
}) 
+1

キーはヘッダーではなく**ヘッダー**にする必要があります。 –

3

私はこの同じ問題を抱えており、問題はサーバー側のApache構成と関係があることが判明しました。ここで私が見つけたことの1つは、私の認証トークンがメインリクエストではなくプリフライトリクエストヘッダーで送信されるため、リクエストのヘッダーに表示されない可能性があります開発ツールでは

私はこのように私のデフォルト値を設定しています:

app.config(function($httpProvider) { 
    $httpProvider.defaults.common['Authorization'] = token; 
    // For angular 1.5, use: 
    // $httpProvider.defaults.headers.common['Authorization'] = token;   
}); 
+0

$ httpインスタンスではなくconfigブロックで$ httpProviderプロバイダーを使用する必要があります。 –

+0

それが動作します。ありがとう:) – zeroflaw

+1

角度1.5では '$ httpProvider.defaults.headers.common.Authorization'を使うべきです – Daniele

関連する問題