[解決済み】Angularで実際のエラーメッセージの代わりに「Http failure response for (unknown url): 0 Unknown Error」が表示されるのですが。
質問
Angular 4を使用しています。
HttpClient
を使用して、外部サービスにリクエストを送信しています。これは非常に標準的なセットアップです。
this.httpClient.get(url).subscribe(response => {
//do something with response
}, err => {
console.log(err.message);
}, () => {
console.log('completed');
}
問題は、リクエストが失敗したときに、一般的な
Http failure response for (unknown url): 0 Unknown Error
というメッセージがコンソールに表示されます。一方、クロームで失敗したリクエストを検査すると、応答ステータスが422であり、"preview" タブで、失敗原因を説明する実際のメッセージが表示されます。
クロームの開発ツールで見ることができる実際の応答メッセージにアクセスするにはどうすればよいですか?
解決方法は?
この問題は CORS . Chromeのコンソールで別のエラーがあることに気づきました。
要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません。Origin ' http://localhost:4200 ' はアクセスを許可されていません。レスポンスにはHTTPステータスコード422.`が含まれています。
これは、バックエンドサーバーからの応答がなかったことを意味します。
Access-Control-Allow-Origin
ヘッダを追加するようにバックエンドの nginx が設定されているにも関わらず
add_header
ディレクティブ
.
しかし、このディレクティブは、レスポンスコードが20Xまたは30Xのときにのみヘッダを追加します。エラーレスポンスではヘッダがありません。そこで、私は
always
パラメータを使用して、レスポンスコードに関係なくヘッダーが追加されるようにしました。
add_header 'Access-Control-Allow-Origin' 'http://localhost:4200' always;
バックエンドが正しく設定されると、Angularのコードで実際のエラーメッセージにアクセスできるようになりました。
関連
-
[解決済み】アンギュラーコンポーネントにサービスを注入しようとするとエラー "EXCEPTION: Can't resolve all parameters for component"、なぜ?
-
[解決済み] テンプレートパースエラーです。'mat-icon' は既知の要素ではありません。
-
[解決済み] Angular EXCEPTION: Http用のプロバイダがありません。
-
[解決済み] NullInjectorError: MatDialogRef 用のプロバイダがありません
-
[解決済み] Uncaught (in promise): Ionic 2でcordova_not_available。
-
[解決済み] ionInputとionChangeで有意差あり
-
[解決済み] switchの使用時に「ステートメントはif文でフィルタリングされなければならない」というtslintのクレームが発生する。
-
[解決済み] Angular 2 : NgModule のメタデータが見つかりません。
-
[解決済み】AngularでHTTPリクエストにURL引数(クエリ文字列)を渡すには?
-
[解決済み] Angular HttpClient "パース中のHttp失敗"
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angular 4: コンポーネントファクトリが見つかりません。@NgModule.entryComponents に追加しましたか?
-
[解決済み] LegendItemComponent をカスタマイズする Angular 用 kendo-ui
-
[解決済み] Angular 5:"ControlContainerのプロバイダがありません"
-
[解決済み] ZoneAwarePromiseとは
-
[解決済み] AngularのmatSortがソートされない
-
[解決済み] パーサエラーです。式が期待される場所で補間({{}})を得た
-
[解決済み] 安全でない値」の例外を発生させずに <iframe src="..."> を設定するにはどうしたらよいですか?
-
[解決済み] エラーです。参照または変数に代入できません! Angular 4 [重複]の場合
-
[解決済み] Angularアプリのシンタックスエラー。予期しないトークン <
-
[解決済み] Access-Control-Allow-Originですべてのドメインを許可する設定にした場合、どのようなセキュリティリスクがありますか?