Azure Üzerinde InSecure(HTTP) Olarak MVC + WEB API Projesi Yayınlama da CORS Sorunu


Aslında bu sorun bizi zararlı girişimler için korumak amaçlı ve kaldırılması değil de istenilen şekilde gerekenlerin yapılması daha doğru olacaktır. Fakat bazen bunları yapmadan “..bu sorunları nasıl çözer ve sistemin çalışmasını sağlarım..” durumları gerekebilir. O sebeple öncelikle bunu belirteyim ki, her zaman bu şekilde bu durumu böyle çözmeyelim.

Sitemize yapılan isteklerin HTTPS olarak güvenli bir şekilde olması yani sitemizde SSL kullanmak ve CORS ayarlarını tüm domain’lere açmamak(herkes kullanmayacaksa) tercih sebebi olacaktır. Şimdiki yöntem kolayca iş görür hale getirmek ama güvenli olmayacak şekilde diyebiliriz.

Öncelikle bir MVC projesi geliştirdiniz ve içerisinde WEB API de bulunuyor diyelim. Dolayısı ile siteniz çalışıyor ama bazı sayfalarda WEB API istekleri ile sayfa çalışıyor. Sitenizi de Azure üzerinde yayınladınız. Fakat ilgili WEB API istekleri yapan sayfayı açıyorsunuz ama çalışmıyor.

Tarayıcının F12 ile developer bölümünü açtınız ve baktınız ki Console’da şu şekilde hatalar mevcut.

chrome-da-webapi-isteklerinde-simple-mixed-content-error

Fazla zorlamadan son cümledeki “içeriğin HTTPS olarak sunulması” gerekliliğini zaten göreceksiniz. Fakat bizim sitemizde SSL yok ya da denemek istediğimiz şey için SSL almak istemiyoruz. O zaman ilgili sayfamıza şu META TAG‘ını ekliyoruz.

<meta http-equiv=”Content-Security-Policy” content=”upgrade-insecure-requests“>

Bu sorunumu ilk aşama olarak çözecektir. Sonra siteyi yayınladığınız Hosting tarafında(ki benim için şu an Azure da) şu sorun karşımıza çıkacaktır.

Nasıl-Duzeltirim-Access-Control-Allow-Origin-issue-for-your-https-enabled

Hadi bakalım bu sorunu da halledelim. Azure’da Web App olarak sitenizi yayınladıysanız, Web App ‘e gidin. Ayarlarından CORS seçeneğini seçin. Sitenizin tam URL‘ini ya da “*” giriniz.

azure-cors-ayarları

Bu ayarı yapmanız yeterli, sorunlar gidecektir. Eğer Web.config de ayrıca bir Access-Control-Allow-Origin ayarı yapmışsanız, onu kaldırmanız gerekecektir.

web-config-access-control-allow-origin-ayarı

Her defasında development yaparken bunu yaz, yayınlarken kaldır vs vs yapmak istemiyorsanız benim gibi Visual Studio’da web.config altındaki web.Release.config dosyasında yayınlarken bunu sil seçeneğine şunu yazabilirsiniz.

web-release-config-access-control-allow-origin-transformation-ile-silmek

Bu ve bezer konularda yayınladığım yazılardan haberdar olmak için bloğumu e-posta kaydı ile takip edebilirsiniz. Ayrıca benzer konularda videolar için YouTube kanalıma abone olabilir ve bildirimleri aktifleştirebilirsiniz.

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s