Cors nedir?
CORS, "Kökenler arası kaynak paylaşımı" anlamına gelen bir W3C standartıdır. Tarayıcının çapraz kaynak sunuculara XMLHttpRequest istekleri yapmasına olanak tanır ve böylece AJAX'ın yalnızca homojen şekilde kullanılabileceği sınırlamasını aşır.
1. Giriş
CORS hem tarayıcı hem de sunucu desteği gerektirir. Şu anda tüm tarayıcılar bu özelliği destekliyor ve IE tarayıcı IE10'dan düşük olamaz.
Tüm CORS iletişim süreci tarayıcı tarafından otomatik olarak tamamlanır ve kullanıcı katılımı gerektirmez. Geliştiriciler için CORS iletişimi, homolog AJAX iletişiminden farklı değildir ve kod tamamen aynıdır. Tarayıcı, bir AJAX isteğinin kaynağı geçtiğini fark ettiğinde, otomatik olarak bazı ek başlık bilgileri ekler ve bazen bir ek istek daha ekler, ancak kullanıcı bunu hissetmez.
Bu nedenle, CORS iletişimini sağlamanın anahtarı sunucudur. Sunucu CORS arayüzünü uyguladığı sürece, kaynaklar arasında iletişim kurabilir.
Aslında, web sunucusu programları (örneğin ASP.NET veya PHP vb.) gelen Http isteğinin çapraz alanlı bir Ajax isteği olup olmadığını ayırt edemez ve kontrol edemez.CORS bu sorunu çözmek için tasarlanmıştır ve W3C özel CORS standardı, tarayıcılara Ajax'ın çapraz alan taleplerine izin veren bir mekanizma sunar.
2: Yerel JS Ajax istek kodu
jQuery'ye referans vermek istemediğim için, js ile aşağıdaki yöntemleri kapsülledim, aşağıdaki şekilde:
Ajax arayüz testleri talep ediyor ve aşağıdaki hata bulur:
Üçüncü: Çapraz alanlara izin verecek bir kontrolcü yöntemi ayarlayın
Şöyle böyleHepsi izin verirDenetleyici veya API yöntemi, web.config dosyasında çapraz alanlıdırsystem.webServerDüğümün altına aşağıdaki yapılandırma eklenir:
Yukarıdaki sonuç istediğimiz sonuç değil! Eğer sadece bir alan adının alan adları arasında arayüzlerimizden birine erişmesini istiyorsak, şöyle görünen bir özellik tanımlamamız gerekir:
Alanlar arası erişim izinlerini ayarlamak için kod şu paragraftır: HttpContext.Response.AppendHeader("Erişim-Kontrol-İzin-Başlama Kaynağı", köken);
Kontrolör yönteminin üzerindeki özellikleri şu şekilde ayarlıyoruz:
Aşağıda gösterilen sonuçla Ajax talebini tekrar başlatıyoruz:
Diğer web sitelerimizden API arayüz kaynaklarına başarıyla erişilebilir.
(Son)
|