Detaylı Rehberler
HTTP İstemcisi

HttpClient Kurulumu

Angular v21 ve sonrasında HttpClient varsayılan olarak enjekte edilebilir durumdadır.

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

Varsayılan HTTP özellik setini yapılandırmak veya app.config.ts dosyasındaki uygulama providers içine özellik eklemek için provideHttpClient yardımcı fonksiyonunu kullanabilirsiniz.

export const appConfig: ApplicationConfig = {
  providers: [provideHttpClient(/* özellikleri buraya ekleyin, örneğin withInterceptors(...) */)],
};

Uygulamanız bunun yerine NgModule tabanlı önyükleme kullanıyorsa, varsayılan HTTP özellik setini yapılandırmak veya özellik eklemek için provideHttpClient'ı uygulamanızın NgModule'ünün providers'ına dahil edebilirsiniz:

@NgModule({
  providers: [provideHttpClient(/* özellikleri buraya ekleyin, örneğin withInterceptors(...) */)],
  // ... 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.