Merhaba, bu yazımda sizlere apache server üzerinden CORS'u nasıl enable edeceğinizi paylaşacağım. Eğer bir web yada uygulama sunucunuz varsa ve bu sunucuya http(GET,POST..vs) istekleri gönderiyorsanız aşağıdaki gibi bir hata mesajıyla karşılaşabilirsiniz. Çünkü sizin erişmek isteğiniz sunucuya gitmeden arka planda önce erişim doğrulaması yapılmaktadır. Eğer erişimde problem varsa zaten istek sunucuya gitmemektedir.
Hata mesajı :
XMLHttpRequest cannot load <URL>. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access
|
İstek gönderdiğiniz sunucu sadece localhost'tan gelecek isteklere yanıt verecek şekilde ayarlandığı(varsayılan olarak) için böyle bir hata mesajı görebilirsiniz. Bu yazıda dışarıdan gelen isteklere yanıt vermesi için apache tarafında yapılması gereken configurasyonundan bahsedeceğim ancak diğer sunucular da aynı ayarları yapmanıza olanak sağlar.
öncelikle apache'yi kurduğunuz dizine gidin
cd /etc/apache2/sites-enabled
|
Apache configurasyon dosyasını düzenlemek için açın
Apache cors'u enable etme işlemi için aşağıdaki satırı Directory tag lerinin arasına ekleyin
<Directory /var/www>
Header set Access-Control-Allow-Origin "*"
</Directory>
|
Header set Access-Control-Allow-Origin "*" satırının anlamı tüm istekleri yanıtladır. Yani origine bakmaksızın istek nereden yapılırsa yapılsın sonuç dönecektir.
Eğer elinizdeki güvenlik gerektiren bir veri ise buraya yıldız(*) koymak yerine sadece izinli host'ları eklemeniz gerekmektedir.
<Directory /var/www>
Header set Access-Control-Allow-Origin "https://s.codepen.io"
</Directory>
|
Apache header'ı aktif edin
Değişiklikleri uygulamak için apache yi restart edin
$ sudo service apache2 restart
|
Bu işlemlerden sonra apache sunucunuz localhost dışındaki yerlerden yapılacak HTTP isteklerine yanıt dönecektir.
Hiç yorum yok:
Yorum Gönder