私はかなり重要なことにIonicやAngularを使っています。だからチートシートとして私はイオンスーパースターターのテンプレート(下のリンク)を使用しています。 私は私のAPIにGETリクエストを作成しようとしていますし、それは私がこのようにそれをやっている場合は見つけるだけで動作します:HttpClientはGETリクエストにパラメータオブジェクトを追加します
this.api.get('user/'+this.user.userId+'/entries?include=stuff&access_token=TOKEN');
を私はオブジェクトへのURLのparamsを置くとき、それは作業を停止します
let options = {
'include':'stuff',
'access_token':'TOKEN'
}
this.api.get('user/'+this.user.userId+'/entries', options);
アクセストークンを含むオプションオブジェクトがURLに追加されていないため、唯一のエラーは「不正なリクエスト」です。
イオンスーパースターターテンプレート私のparamsオブジェクト内の各キーのproviders/api/api.ts
通話
.set()
で
:
if (params) {
reqOpts.params = new HttpParams();
for (let k in params) {
reqOpts.params.set(k, params[k]);
}
}
が、角度の大学によると、これはHTTPParamsは不変である」ので、可能ではありません" これを行うことが本当に間違っていた場合、私はそれがイオンテンプレートに含まれるとは考えていません。私はこの問題を遭遇した最初の人物ではないと私は信じています。
しかし、私はここに詰め込まれているので、どんな助けにも感謝します。
角度大学へのリンク: https://blog.angular-university.io/angular-http/#httprequestparameters
イオンスーパースターターへのリンク: https://github.com/ionic-team/starters/tree/master/ionic-angular/official/super
検索パラメータは、オプション全体の* part *である必要があります。 paramsを追加することができます。不変性とは、古いものと別のparamsをセットして新しいオブジェクトを返すことを意味します。 – jonrsharpe
ここで誤解されているのは確かですが、src/providers/api/api.tsに定義されているAPIクラスがparams-objectをとり、新しいHttpParamsインスタンスを作成し、各パラメータをreqOpts.paramsに追加します。 reqOptsオブジェクト全体をhttp.get(endpoint、reqOpts)に渡します。だから、私の最初のパラメータは渡されたreqOptsの一部であり、その全体ではありません。いいえ? – yardarrat