PEMBARUAN: sejak Angular 1.6
Anda tidak dapat lagi menggunakan string JSON_CALLBACK sebagai placeholder untuk menentukan ke mana nilai parameter callback harus pergi
Anda sekarang harus menentukan callback seperti ini:
$http.jsonp('some/trusted/url', {jsonpCallbackParam: 'callback'})
Ubah / akses / deklarasikan param via $http.defaults.jsonpCallbackParam
, default kecallback
Catatan: Anda juga harus memastikan URL Anda ditambahkan ke Trusted / Whitelist:
$sceDelegateProvider.resourceUrlWhitelist
atau dipercaya secara eksplisit melalui:
$sce.trustAsResourceUrl(url)
success/error
tidak digunakan lagi .
Metode $http
janji lama success
dan error
sudah tidak digunakan lagi dan akan dihapus di v1.6.0. Gunakan metode standar lalu sebagai gantinya. Jika $httpProvider.useLegacyPromiseExtensions
diatur ke false
maka metode ini akan melempar $http/legacy error
.
MENGGUNAKAN:
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);
});
Jawaban Sebelumnya: Angular 1.5.x dan sebelumnya
Yang harus Anda lakukan adalah berubah callback=jsonp_callback
menjadi callback=JSON_CALLBACK
seperti ini:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";
Dan kemudian .success
fungsi Anda harus aktif seperti yang Anda miliki jika pengembalian berhasil.
Melakukannya dengan cara ini membuat Anda tidak perlu mengotori ruang global. Ini didokumentasikan dalam dokumentasi AngularJS di sini .
Memperbarui biola Matt Ball untuk menggunakan metode ini: http://jsfiddle.net/subhaze/a4Rc2/114/
Contoh lengkap:
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);
});