AngularJS’ in $http servisini kullanırken an gelecek, header üzerinden kendinize özgü parametreler göndermek isteyeceksiniz. Hemde bu parametreleri tek bir yerden set edip, tüm isteklerde otomatik olarak isteğe eklenmesini isteyeceksiniz.

Yada Tam tersi, tüm isteklerinizin sonucundaki cevapları tek bir yerden kontrol edip, değiştirmeye de ihtiyaç duyabilirsiniz. Lafın kısası, $http servisi ile yaptığınız tüm XHR Requestlerine hakim olup, işin kaynağından düzenlemeler yapmak için https://docs.angularjs.org/api/ng/service/$http#interceptors adresinde de anlatıldığı üzere interceptor leri kullanırız.

Request ve Response’ ların tamamına hakim olabildiğiniz interceptor’ ler ile her imkana sahipsiniz. Bu konuyu uzun uzadıysa ayrıca bir konuda işleyeceğim.

Ama biliyorumki sizin bu konuya gelişinizin sebebi; Header’ a bir parametre eklemek.

Örneğin “Authorization değeri

Requestlerinizin tümünde bu bilgiyi set edip göndermek istiyorsunuz.

2 ihtimal var, uygulama henüz ayağa kalkmadan önce, bir şekilde (cookie, localstorage, render source) ile bu değeri elde ettiniz. Öyleyse, uygulama ayağa kalkmadan bu değeri $http servisine ekleyelim;

app değişkeni sizin uygulamanızı referans eder, büyük ihtimalde sizde farklıdır, myApp olabilir 🙂 yada konuya çok uzaksanız, app yerine angular.module(‘ng-appAYazdigimSey’) olarak guncelleyebilirsiniz.

burayaDegerinDegiskeniGelecek değişkenini nasıl elde edeceğinizi bilmediğim için size bırakıyorum.

Uygulama çoktan ayağa kalkmış, herhangi bir aksiyon ile(login, vsvs) ile bu değer elde edildiyse artık config metodunu kullanamayız, onun yerine run metodunu kullanıyoruz.

Gördüğünüz üzere, config yerine run kullandık, $httpProvider yerinede direk olarak $http servisini kullandık, çünkü uygulama çoktan ayağa kalkmış.

Örneğin “Dil değeri

Teknik olarak yukarıdaki kodtaki common dizinin key’ ini değiştirmekten başka bir fark yok. Genellikle uygulamalarda, dil değeri de bu şekilde gönderilir. Çünkü kullanıcı dilini dinamik olarak değiştirirse, en iyi yöntem header parametresi olarak göndermektir.

Leave A Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir