Detaylı Rehberler
HTTP İstemcisi

HttpClient Kurulumu

Uygulamanızda HttpClient kullanabilmeniz için önce onu bağımlılık enjeksiyonu ile yapılandırmanız gerekir.

Bağımlılık Enjeksiyonu ile HttpClient Sağlama

HttpClient, çoğu uygulamanın app.config.ts dosyasındaki uygulama providers içine dahil ettiği provideHttpClient yardımcı fonksiyonu kullanılarak sağlanır.

export const appConfig: ApplicationConfig = {
  providers: [provideHttpClient()],
};

Uygulamanız bunun yerine NgModule tabanlı önyükleme kullanıyorsa, provideHttpClient'ı uygulamanızın NgModule'ünün providers'ına dahil edebilirsiniz:

@NgModule({
  providers: [provideHttpClient()],
  // ... diğer uygulama yapılandırması
})
export class AppModule {}

Ardından HttpClient hizmetini bileşenlerinizin, servislerinizin veya diğer sınıflarınızın bağımlılığı olarak enjekte edebilirsiniz:

@Service()
export class ConfigService {
  private http = inject(HttpClient);
  // Bu servis artık `this.http` aracılığıyla HTTP istekleri yapabilir.
}

HttpClient Özelliklerini Yapılandırma

provideHttpClient, istemcinin farklı yönlerini etkinleştirmek veya yapılandırmak için isteğe bağlı özellik yapılandırmalarının bir listesini kabul eder. Bu bölüm isteğe bağlı özellikleri ve kullanımlarını açıklar.

withXhr

export const appConfig: ApplicationConfig = {
  providers: [provideHttpClient(withXhr())],
};

Varsayılan olarak, HttpClient istekleri yapmak için fetch API'sini kullanır. withXhr özelliği istemciyi bunun yerine XMLHttpRequest API'sini kullanacak şekilde değiştirir.

fetch daha modern bir API'dir ve XMLHttpRequest'in desteklenmediği bazı ortamlarda kullanılabilir. Yükleme ilerleme olayları üretmemesi gibi bazı sınırlamaları vardır.

Sunucu tarafı render (SSR) ortamlarında withXhr kullanmayın

Sunucuda XHR desteği kullanımdan kaldırılmıştır ve Angular 23'te kaldırılması planlanmaktadır. Temel xhr2 kütüphanesi yönlendirmeleri güvenli bir şekilde işlemez: alan adları arası yönlendirmelerde Authorization başlıklarını iletebilir ve yönlendirme döngüleri aracılığıyla hizmet reddi (DoS) saldırılarına karşı savunmasızdır. SSR uygulamaları için bunun yerine varsayılan fetch arka ucunu kullanın.

withInterceptors(...)

withInterceptors, HttpClient üzerinden yapılan istekleri işleyecek yakalayıcı fonksiyonları kümesini yapılandırır. Daha fazla bilgi için yakalayıcılar kılavuzuna bakın.

withInterceptorsFromDi()

withInterceptorsFromDi, eski tarz sınıf tabanlı yakalayıcıları HttpClient yapılandırmasına dahil eder. Daha fazla bilgi için yakalayıcılar kılavuzuna bakın.

HELPFUL: Fonksiyonel yakalayıcılar (withInterceptors aracılığıyla) daha öngörülebilir sıralamaya sahiptir ve bunları DI tabanlı yakalayıcılar yerine öneriyoruz.

withRequestsMadeViaParent()

Varsayılan olarak, belirli bir enjektör içinde provideHttpClient kullanarak HttpClient'ı yapılandırdığınızda, bu yapılandırma üst enjektörde bulunabilecek herhangi bir HttpClient yapılandırmasını geçersiz kılar.

withRequestsMadeViaParent() eklediğinizde, HttpClient bu seviyedeki yapılandırılmış yakalayıcılardan geçtikten sonra istekleri üst enjektördeki HttpClient örneğine iletecek şekilde yapılandırılır. Bu, isteği üst enjektörün yakalayıcılarından da geçirerek gönderirken bir alt enjektörde yakalayıcılar eklemek istiyorsanız kullanışlıdır.

CRITICAL: Mevcut enjektörün üstünde bir HttpClient örneği yapılandırmanız gerekir, aksi takdirde bu seçenek geçerli değildir ve kullanmaya çalıştığınızda çalışma zamanı hatası alırsınız.

withJsonpSupport()

withJsonpSupport dahil edildiğinde, HttpClient üzerinde alan adları arası veri yükleme için JSONP kuralı aracılığıyla GET isteği yapan .jsonp() yöntemi etkinleştirilir.

HELPFUL: Mümkün olduğunda alan adları arası istekler yapmak için JSONP yerine CORS kullanmayı tercih edin.

withXsrfConfiguration(...)

Bu seçeneği dahil etmek, HttpClient'ın yerleşik XSRF güvenlik işlevselliğini özelleştirmenize olanak tanır. Daha fazla bilgi için güvenlik kılavuzuna bakın.

withNoXsrfProtection()

Bu seçeneği dahil etmek, HttpClient'ın yerleşik XSRF güvenlik işlevselliğini devre dışı bırakır. Daha fazla bilgi için güvenlik kılavuzuna bakın.

HttpClientModule Tabanlı Yapılandırma

Bazı uygulamalar HttpClient'ı NgModule'lere dayalı eski API kullanarak yapılandırabilir.

Bu tablo, @angular/common/http'den kullanılabilir NgModule'leri ve bunların yukarıdaki sağlayıcı yapılandırma fonksiyonlarıyla nasıl ilişkilendiğini listeler.

NgModule provideHttpClient() equivalent
HttpClientModule provideHttpClient(withInterceptorsFromDi(), withXhr())
HttpClientJsonpModule withJsonpSupport()
HttpClientXsrfModule.withOptions(...) withXsrfConfiguration(...)
HttpClientXsrfModule.disable() withNoXsrfProtection()

Use caution when using HttpClientModule in multiple injectors

HttpClientModule birden fazla enjektörde bulunduğunda, yakalayıcıların davranışı belirsizdir ve tam seçenekler ile sağlayıcı/içe aktarma sıralamasına bağlıdır.

Daha kararlı davranışa sahip olduğu için çoklu enjektör yapılandırmalarında provideHttpClient'ı tercih edin. Yukarıdaki withRequestsMadeViaParent özelliğine bakın.