Badursun

Windows Server Classic ASP CORS Policy Problem Çözümü

Yine hızlı bir çözüm yazısı ile beraber. CORS Policy sorunu yüzünden şu yazıyı hepiniz görmüşsünüzdür.

Access to XMLHttpRequest at ‘https://www. xxxxxx’ from origin ‘http://www. xxxxx’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

İşte bu sorunun windows server’larda Classic ASP ile çözümü oldukça basit. Tabii konu derinlemesine güvenlik içeriyor fakat özetle bu soruna kısadan bir çözüm yolunu web.config dosyası ile nasıl yaparsınız; işte hazır bir web.config dosyası

<?xml version=”1.0″ encoding=”UTF-8″?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name=”Access-Control-Allow-Origin” value=”*” />
<add name=”Access-Control-Request-Method” value=”POST, GET, OPTIONS, PUT, DELETE” />
<add name=”Access-Control-Allow-Headers” value=”Authorization” />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>

Eğer bir servisinizde CORS hatası ile karşılaşıyorsanız, servisinizi sunduğunuz temel web.config ayarı yukarıda ki gibi olmalıdır. Bu ayarlar ile POST, GET, OPTIONS, PUT ve DELETE methodlarına izin verirsiniz. Burada önemli olan bir ayrıntı OPTIONS methodur. Bu method güncel bir çok tarayıcı tarafından PREFILGHT yani CORS kontrolünde ilk adım olarak gerçekleşir, dolayısıyla mutlaka OPTIONS eklemenizde fayda var. Ayrıca servisinizde bir Authorization header ekli ise yine izin verilen header parametresine bunu eklemenizde fayda olacaktır.

Leave a Comment

Your email address will not be published. Required fields are marked *

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.