업데이트 : Angular 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의에서 제거 될 예정입니다. 대신 표준 then 방법을 사용하십시오. 경우 $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);
});
이전 답변 : Angular 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 문서에 문서화되어 있습니다 .
이 방법을 사용하도록 Matt Ball의 바이올린을 업데이트했습니다. 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);
});