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/errortidak digunakan lagi .
Metode $httpjanji lama successdan errorsudah tidak digunakan lagi dan akan dihapus di v1.6.0. Gunakan metode standar lalu sebagai gantinya. Jika $httpProvider.useLegacyPromiseExtensionsdiatur ke falsemaka 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_callbackmenjadi callback=JSON_CALLBACKseperti ini:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";
Dan kemudian .successfungsi 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);
});