ロングストーリーショート。私は本当にAngularJSの教祖ではありません。私たちのサイトは1.3から1.5にアップグレードされました。この1つは壊れています。AngularJS 1.3から1.5 transformRequestが壊れた、特定の状況のための解決策?
私たちは、「API」という名前の工場でtransformRequestを経由してHTTPヘッダーを注入するために使用:あなたのよう
.service('auth', function($cookies, $rootScope, api) {
this.user = null;
this.login = function(credentials) {
var log = api.auth.login(credentials);
log.$promise.then(function(data){
// on good username and password
this.user = data;
});
:
.factory('api', function($resource) {
function add_auth_header(data, headersGetter) {
var headers = headersGetter();
headers['Authorization'] = ('Basic ' + btoa(data.username +
':' + data.password));
}
// defining the endpoints.
return {
auth: $resource('/api/v1/auth/', {}, {
login: {method: 'POST', transformRequest: add_auth_header},
logout: {method: 'DELETE'},
}),
後で同じファイルで、これはそのように呼ばれていますapi.auth.loginを信任状で呼び出します。私は変換要求が呼び出されていることを確認しました。ヘッダーはheadersGetter()によって正しくフェッチされており、ヘッダー[]オブジェクトをハングすることはもはや1.3で使用したように変更されません。 Fiddlerは、1.3で行ったように要求にAuthorizationヘッダーがなくなったことを確認し、要求を受け取ったDjangoサーバーも同意します。
1.4でtransformRequestの機能が「壊れました」と読んだことがありますが、これらの投稿はいつも$ httpリクエストを作成し、工場からapiサービスを提供していないこと、私のようなAngularJS newbにはかなりの意味がありました。私は認可がどのように注入されるのかをどこから変更するのか分かりません。
誰でも私に正しい方法を教えてもらえますか?
真剣に、なぜdownvoteのコメントはありませんか?これはまったく正当な質問です。 –