ATUALIZAÇÃO: desde Angular 1.6
Você não pode mais usar a string JSON_CALLBACK como um espaço reservado para especificar onde o valor do parâmetro de retorno de chamada deve ir
Agora você deve definir o retorno de chamada assim:
$http.jsonp('some/trusted/url', {jsonpCallbackParam: 'callback'})
Alterar / acessar / declarar parâmetro via $http.defaults.jsonpCallbackParam, o padrão écallback
Observação: você também deve certificar-se de que seu URL seja adicionado à lista de permissões / confiáveis:
$sceDelegateProvider.resourceUrlWhitelist
ou explicitamente confiável via:
$sce.trustAsResourceUrl(url)
success/errorforam descontinuados .
Os $httpmétodos promessa legados successe errortem sido substituído e será removido em v1.6.0. Use o método padrão then. Se $httpProvider.useLegacyPromiseExtensionsfor definido como false, esses métodos irão lançar $http/legacy error.
USAR:
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);
});
Resposta Anterior: Angular 1.5.x e antes
Tudo que você precisa fazer é mudar callback=jsonp_callbackpara callback=JSON_CALLBACKassim:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";
E então sua .successfunção deve disparar como você fez se o retorno foi bem-sucedido.
Fazer isso dessa forma evita que você tenha que sujar o espaço global. Isso está documentado na documentação do AngularJS aqui .
Atualizou o violino de Matt Ball para usar este método: http://jsfiddle.net/subhaze/a4Rc2/114/
Exemplo completo:
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);
});