ОНОВЛЕННЯ: з кутового 1.6
Ви більше не можете використовувати рядок JSON_CALLBACK як заповнювач, щоб вказати, куди повинно йти значення параметра зворотного виклику
Тепер ви повинні визначити зворотний виклик так:
$http.jsonp('some/trusted/url', {jsonpCallbackParam: 'callback'})
Змінити / отримати доступ / оголосити параметр через $http.defaults.jsonpCallbackParam
, за замовчуванням наcallback
Примітка. Ви також повинні переконатися, що ваша URL-адреса додана до довіреного / білого списку:
$sceDelegateProvider.resourceUrlWhitelist
або явно довіряти через:
$sce.trustAsResourceUrl(url)
success/error
були застарілими .
Ці $http
методи обіцяють застарілі success
і error
застаріли і будуть видалені в v1.6.0. Використовуйте замість цього стандартний метод. Якщо $httpProvider.useLegacyPromiseExtensions
встановлено значення, false
тоді ці методи будуть кинутими $http/legacy error
.
ВИКОРИСТАННЯ:
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);
});
Попередня відповідь: Кутовий 1.5.x і раніше
Всі ви повинні зробити , це змінити , callback=jsonp_callback
щоб callback=JSON_CALLBACK
виглядати приблизно так:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";
І тоді ваша .success
функція повинна спрацьовувати, як у вас, якщо повернення було успішним.
Це робиться таким чином, щоб уникнути забруднення глобального простору. Це зафіксовано в документації AngularJS тут .
Оновлено загадку Метта Балла, щоб використовувати цей метод: http://jsfiddle.net/subhaze/a4Rc2/114/
Повний приклад:
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);
});