Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyelesaikan Masalah Pengepala HTTP Sudut dan Isu CORS Go?

Bagaimana untuk Menyelesaikan Masalah Pengepala HTTP Sudut dan Isu CORS Go?

Barbara Streisand
Barbara Streisandasal
2024-12-27 02:08:10835semak imbas

How to Troubleshoot Angular HTTP Headers and Go CORS Issues?

Menyelesaikan Masalah Pengepala HTTP Sudut dan Go CORS

CORS (Perkongsian Sumber Silang Asal) sering menjadi punca sakit kepala apabila menyambungkan apl Sudut kepada API Go. Memahami cara menambah pengepala Keizinan dalam Sudut dan mengendalikan CORS dalam Go adalah penting untuk komunikasi yang berjaya antara kedua-duanya.

Pengepala Keizinan Sudut

Untuk menambah pengepala Kebenaran dalam Sudut, anda harus menggunakan Pemintas Http. Contoh Pemindas Auth ialah:

@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);
  }
}

Daftarkan pemintas dalam modul apl anda:

providers: [
  {
    provide : HTTP_INTERCEPTORS,
    useClass: AuthInterceptor,
    multi   : true,
  },
],

Go CORS Handling

Pastikan kod Go anda membenarkan pengepala permintaan yang diperlukan daripada apl Angular:

headersOk := handlers.AllowedHeaders([]string{"*"})
originsOk := handlers.AllowedOrigins([]string{"*"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})

Jika isu berterusan, konfigurasikan dengan teliti tetapan CORS anda agar sepadan dengan pengepala permintaan pelanggan.

Contoh Isu Selesai

Kod Sudut berikut:

this.http.get<ProjectedBalance>(requestUrl, {headers: new HttpHeaders().set('Authorization', 'my-auth-token')})

Digabungkan dengan kod Go berikut:

headersOk := handlers.AllowedHeaders([]string{"Authorization"})
originsOk := handlers.AllowedOrigins([]string{"*"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})

Sepatutnya berjaya mewujudkan komunikasi antara apl Angular dan Go API.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Masalah Pengepala HTTP Sudut dan Isu CORS Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn