2016-10-07 7 views
0

私のアプリで行われたすべてのフェッチでパラメータを追加するエレガントな方法を探しています。新しいパラメータを追加するすべてのリクエストを変更する

新しいプロパティを追加するボディを変更できる設定はありますか?私はgithub上でドキュメンテーションとaurelia-fetch-clientの実装を見ていましたが、これについて何も見つかりませんでした。

+0

リクエストのURLに渡したいのですか、それとも本文に追加しますか? – James

+0

私は、JSONとして本体にパラメータを追加しています。 – Smaniotto

答えて

0

私は別のアプローチを見つけました。

私はカスタムクラスを作成しました。コンストラクタで、フェッチボディに送るためにパラメータを追加します。

import { transient } from 'aurelia-framework'; 

@transient() 
export class MyCustomBodyRequest { 
    private _body?: any = {}; 

    constructor() { 
     this._body.myCustomParameterOnEveryReq = getIt(); 
    } 

    public get body() { 
     return this._body; 
    } 

    public set body(body: any) { 
     Object.assign(this._body, body); 
    } 

}​ 
1

あなたはインターセプタを探しています。ここをよく読んへのリンクのカップルです:

http://aurelia.io/hub.html#/doc/api/aurelia/fetch-client/latest/interface/Interceptor

https://gist.github.com/bryanrsmith/14caed2015b9c54e70c3

は基本的に、あなたがリクエストボディを変更したいとしていると、あなたは次のような何かをすることによってそれを行うことができるはずですこれは:

httpClient.configure(config => { 
    config 
     .withBaseUrl('api/') 
     .withDefaults({ 
      credentials: 'same-origin', 
      headers: { 
       'Accept': 'application/json', 
       'X-Requested-With': 'Fetch' 
      } 
     }) 
     .withInterceptor({ 
      request(request) { 
       // you're going to want to modify the request body and add the appropriate property. Should be able to do it from here 
       return request; 
      } 
     }); 
}); 
+0

私はこのアプローチを試しましたが、リクエストボディを変更する方法が見つかりませんでした。 – Smaniotto

+0

@EduwHS自分で試しました。私はあなたができると思った。リクエストの種類に応じて、リクエストごとに手動で追加する必要があります。 GETリクエストをしている場合。私はあなたがリクエストのそのプロパティにアクセスすることができるので、あなたはちょうどURLの最後にキーを追加することができるはずだと思います。 – James

+0

スニペットを共有できますか? URLにパラメータを追加しようとすると、そのリクエストはキャンセルされました(chromeのネットワークタブでリクエストを発生させませんでした)。 – Smaniotto

関連する問題