[解決済み】AngularでHTTPリクエストにURL引数(クエリ文字列)を渡すには?
2022-03-27 03:44:35
質問
AngularコンポーネントからHTTPリクエストを発生させたいのですが、URL引数(クエリストリング)をどのように追加すればいいのか分かりません。
this.http.get(StaticSettings.BASE_URL).subscribe(
(response) => this.onGetForecastResult(response.json()),
(error) => this.onGetForecastError(error.json()),
() => this.onGetForecastComplete()
)
今度は私の
StaticSettings.BASE_URL
は、クエリ文字列のないURLのようなものです。
http://atsomeplace.com/
のようにしたいのですが
http://atsomeplace.com/?var1=val1&var2=val2
を追加する方法
var1
と
var2
をオブジェクトとして、私のHTTPリクエストオブジェクトに追加しますか?
{
query: {
var1: val1,
var2: val2
}
}
それをHTTPモジュールが解析してURLのクエリ文字列に変換します。
解決方法は?
その HttpClient メソッドを使用すると パラメータ をオプションで指定します。
をインポートすることで設定することができます。 HttpClientModule を @angular/common/http パッケージから取得します。
import {HttpClientModule} from '@angular/common/http';
@NgModule({
imports: [ BrowserModule, HttpClientModule ],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
この後 HttpClient を作成し、それを使ってリクエストを行います。
import {HttpClient} from '@angular/common/http'
@Component({
selector: 'my-app',
template: `
<div>
<h2>Hello {{name}}</h2>
</div>
`,
})
export class App {
name:string;
constructor(private httpClient: HttpClient) {
this.httpClient.get('/url', {
params: {
appid: 'id1234',
cnt: '5'
},
observe: 'response'
})
.toPromise()
.then(response => {
console.log(response);
})
.catch(console.log);
}
}
バージョン4以前のangularの場合、同じように Http サービスを利用することができます。
は Http.get を実装したオブジェクトを受け取ります。 リクエストオプションアーグ を第2パラメータとして指定します。
は 検索 そのオブジェクトのフィールドには、文字列または URLSearchParams オブジェクトを作成します。
一例です。
// Parameters obj-
let params: URLSearchParams = new URLSearchParams();
params.set('appid', StaticSettings.API_KEY);
params.set('cnt', days.toString());
//Http request-
return this.http.get(StaticSettings.BASE_URL, {
search: params
}).subscribe(
(response) => this.onGetForecastResult(response.json()),
(error) => this.onGetForecastError(error.json()),
() => this.onGetForecastComplete()
);
関連
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] TypeScriptで文字列を数値に変換する方法とは?
-
[解決済み] node.jsでHTTP POSTリクエストはどのように行われるのですか?
-
[解決済み] POSTとPUT HTTP REQUESTの違いは何ですか?
-
[解決済み] HTTPでファイルをダウンロードするには?
-
[解決済み] HTTP DELETE リクエストにエンティティボディは許されますか?
-
[解決済み] クエリ文字列パラメータのJava URLエンコーディング
-
[解決済み] HTTP GETリクエストにcontent-typeヘッダーは必要ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 要求されたURLの長さが、このサーバーの容量制限を超えていませんか?
-
[解決済み] 負の配列サイズ例外
-
java.lang.NoClassDefFoundError: クラスを初期化できませんでした エラーの理由
-
[解決済み] プロキシが全く応答を受け取らない場合、502 HTTPステータスコードを使用すべきですか?
-
[解決済み] X-Forwarded-Forヘッダーが表示されないブラウザの理由
-
[解決済み] X-REQUEST-ID httpヘッダーとは何ですか?
-
[解決済み] サブドメインとドメイン間でCookieを共有する
-
[解決済み] ブラウザの「F5」や「Ctrl + F5」によるリフレッシュはどのようなリクエストを発生させるのでしょうか?
-
[解決済み】HTTPプロトコルでクッキーはどのように渡されるのですか?
-
[解決済み] Angular2 http.get()、map()、subscribe()とobservableパターン - 基本的な理解