GÜNCELLEME: Angular 1.6'dan beri
Artık JSON_CALLBACK dizesini, geri çağrı parametresi değerinin nereye gitmesi gerektiğini belirtmek için bir yer tutucu olarak kullanamazsınız
Şimdi geri aramayı şu şekilde tanımlamalısınız:
$http.jsonp('some/trusted/url', {jsonpCallbackParam: 'callback'})
Değiştir / erişim / beyan et parametresi $http.defaults.jsonpCallbackParam, varsayılan olarakcallback
Not: Ayrıca, URL'nizin güvenilenler / beyaz listeye eklendiğinden emin olmalısınız:
$sceDelegateProvider.resourceUrlWhitelist
veya şu yolla açıkça güvenildi:
$sce.trustAsResourceUrl(url)
success/erroredildi kullanımdan kaldırıldı .
$httpEski vaadi yöntemleri successve erroronaylanmaz ve GO v1.6.0 kaldırılacaktır. Bunun yerine standartı ve ardından yöntemi kullanın. Olarak $httpProvider.useLegacyPromiseExtensionsayarlanırsa, falsebu yöntemler atacaktır $http/legacy error.
KULLANIM:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts"
var trustedUrl = $sce.trustAsResourceUrl(url);
$http.jsonp(trustedUrl, {jsonpCallbackParam: 'callback'})
.then(function(data){
console.log(data.found);
});
Önceki Cevap: Açısal 1.5.x ve öncesi
Tek yapmanız gereken gereken tüm değişimdir callback=jsonp_callbackiçin callback=JSON_CALLBACKşöyle:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";
Ve sonra .successgeri dönüş başarılı olduysa , işleviniz de sahip olduğunuz gibi çalışacaktır.
Bunu bu şekilde yapmak sizi küresel alanı kirletmekten alıkoyar. Bu angularjs belgelerinde belgelenmiştir burada .
Bu yöntemi kullanmak için Matt Ball'un keman güncellendi: http://jsfiddle.net/subhaze/a4Rc2/114/
Tam örnek:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";
$http.jsonp(url)
.success(function(data){
console.log(data.found);
});