ホームページ > バックエンド開発 > Golang > Angular HTTP ヘッダーと Go CORS の問題をトラブルシューティングする方法は?

Angular HTTP ヘッダーと Go CORS の問題をトラブルシューティングする方法は?

Barbara Streisand
リリース: 2024-12-27 02:08:10
オリジナル
820 人が閲覧しました

How to Troubleshoot Angular HTTP Headers and Go CORS Issues?

Angular HTTP ヘッダーと Go CORS のトラブルシューティング

CORS (Cross-Origin Resource Sharing) は、Angular アプリを Go API に接続する際の悩みの原因となることがよくあります。 Angular で Authorization ヘッダーを追加する方法と Go で CORS を処理する方法を理解することは、両者間の通信を成功させるために重要です。

Angular Authorization ヘッダー

Angular で Authorization ヘッダーを追加するには、Http インターセプターを利用する必要があります。認証インターセプターの例は次のとおりです。

@Injectable()
export class AuthInterceptor implements HttpInterceptor {
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    req = req.clone({
      setHeaders: {
        'Content-Type': 'application/json; charset=utf-8',
        'Accept': 'application/json',
        'Authorization': `Bearer ${AuthService.getToken()}`,
      },
    });
    return next.handle(req);
  }
}
ログイン後にコピー

アプリのモジュールにインターセプターを登録します。

providers: [
  {
    provide : HTTP_INTERCEPTORS,
    useClass: AuthInterceptor,
    multi   : true,
  },
],
ログイン後にコピー

Go CORS Handling

Go コードでAngular アプリからの必要なリクエスト ヘッダー:

headersOk := handlers.AllowedHeaders([]string{"*"})
originsOk := handlers.AllowedOrigins([]string{"*"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
ログイン後にコピー

問題がある場合永続化するには、クライアントのリクエスト ヘッダーと一致するように CORS 設定を慎重に構成します。

解決された問題の例

次の Angular コード:

this.http.get<ProjectedBalance>(requestUrl, {headers: new HttpHeaders().set('Authorization', 'my-auth-token')})
ログイン後にコピー

次の Go コードと組み合わせる:

headersOk := handlers.AllowedHeaders([]string{"Authorization"})
originsOk := handlers.AllowedOrigins([]string{"*"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
ログイン後にコピー

Angular アプリと Go 間の通信を正常に確立する必要がありますAPI。

以上がAngular HTTP ヘッダーと Go CORS の問題をトラブルシューティングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート