Angularjs ile Cross-Domain sorununu aşmak için JSONP yöntemini kullanabiliriz. En basit haliyle bir JSONP talebi şu şekilde gönderilebilir.
$http.jsonp('http://www.filltext.com/?callback=JSON_CALLBACK&rows=5&fname={firstName}&lname={lastName}')
.success(function (data) {
console.log(data);
}
);
Diğer bir yöntem ise parametreleri ayırarak talebi göndermektir.
$http({
url: 'http://www.filltext.com',
method: 'JSONP',
params: {
callback: 'JSON_CALLBACK',
rows: 5,
fname: '{firstName}',
lname: '{lastName}'
}
}).
success(function (data) {
console.log(data);
}).error(function (data) {
console.log(data);
})
Angularjs ile çalışırken callback fonksiyonlarının ismi JSON_CALLBACK şeklinde olmalıdır. Aksi taktirde hata ile karşılaşırız. Angularjs kendi içinde callback fonksiyonunun adını değiştirir. Sonuçta talep olarak bize aşağıdaki gibi bir cevap dönecektir.
angular.callbacks._0({"key": "data"});
İşlem başarılı bir şekilde gerçekleşirse success fonksiyonu çalışacaktır. Hata oluşursa error fonksiyonu çalışacaktır.