CORS (Cross Origin Request Sharing) nedir?
CORS bir web uygulamasinin baska kaynaklara erisimi sirasinda erisim izni kontrolünü saglayan mekanizmadir. Güvenlik sebebi ile uygulamanin kendi domain i haricindeki kaynaklarla iletisimi tarayicilar tarafindan kisitlanir. Bu kisiti asmak icin de en kolay yöntem proxy tanimlamasi yapacagiz ve bu sekilde kendi domainimiz üzerinden dis servislere erisecegiz. (Detayli tanim icin farkli linkleri inceleyebilirsiniz. Burada pratik manada bu sorunu nasil cözecegimize deginecegiz.)
Proxy Dosyasinin Eklenmesi ve Gerekli Ayarlar
Ilk olarak ‘proxy.conf.json’ dosyamizi ‘src’ dizininin altina ekliyoruz. Örnegimizde iki farkli servis kullanacagim. Birincisi bir kelime uygulamasi icin kelime aratabildigimiz, bize kelimenin türünü veren bir servis, ikincisi ise kendi yazdigimiz kelimelerin anlamlarini alabildigimiz bir servis. Dosyamizin icerigini asagida görebilirsiniz :
Bu ayar ile uygulamamiza sunu demis olacagiz:
Eger sana /dwdsapi uzantili istek gönderirsem bunun icin target ‘https://www.dwds.de/api/wb/snippet’ adresini cagir, eger /jwbapi uzantisi ile istek gönserirsem ‘https://jpa-wordboxapi.herokuapp.com/api’ adresini cagir.
Örnegin bir Angular uygulamasinda asagidaki gibi bir get istegi yaparsaniz :
Bu istek /jwbapi uzantisindan yakalanacak ve ‘https://jpa-wordboxapi.herokuapp.com/api/vocabulary/16101’ adresine istek yapmis olacagiz.
Angular Web Uygulamasi Icin Angular.json proxyConfig Ayari
Olusturdugumuz proxy dosyasini uygulamanin taniyabilmesi icin ilgili json dosyasinda bu ayari tanitmamiz gerekiyor. Angular uygulamasi icin ‘angular.json’ dosyasinda ‘proxyConfig’ ayarini asagidaki gibi ekliyoruz.
Bu ayari da yaptiktan sonra uygulamanizi serve ettiginizde hata almadiginizi göreceksiniz. Sunucu tarafinda degisiklik yapmamiza gerek kalmadan bu sekilde tanimlamayla bu sorunu asabiliyoruz.
Biz bu örnekte 2 farkli servis kullanmis olduk, siz dilerseniz sadece proxy dosyasina istediginiz servisleri tanimlayarak bu sayiyi arttirabilirsiniz. Ihtiyac üzerine bu yaziyi kaleme almis oldum, umarim faydali olmustur. Ilave sorulariniz olursa yorum yazarak iletebilirsiniz. Saglicakla kalin.