2014-02-14 4 views
0

Сейчас я просто пытаюсь заставить API-вызов работать, ничего необычного. В конце концов, мне нужна только базовая информация, такая как имя, время исполнения, рейтинг и описание ... но это все позже. Я даже не могу заставить API-вызов работать.API-вызов с angularJS и Rotten Tomato

Я сделал несколько учебников, и мне, кажется, что-то не хватает.

HTML

<head> 
<title>Watch a movie!</title> 

<meta charset = "UTF-8" /> 
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> 
<meta name="description" content=""> 
<meta name="keywords" content=""> 

<link href="css/bootstrap.css" rel="stylesheet" type="text/css"> 
<link href="css/style.css" rel="stylesheet" type="text/css"> 
<script src="js/angular.min.js"></script> 
<script src="http://code.angularjs.org/1.2.0rc1/angular-route.min.js"></script> 
<script src="controllers/movies.js"></script> 

</head> 
<body> 
<div id="wrapper"> 
<button type="button" class="btn btn-primary btn-lg btn-block">NOW PLAYING</button> 
<button type="button" class="btn btn-default btn-lg btn-block">COMING FRIDAY</button> 

<!-- PLACEHOLDER --> 
<div id="movieInfoBox"> 
<div ng-controller = "movieController">{{movies}}</div> 
</div> 

</div> <!-- END WRAPPER --> 

JS

var movies = angular.module("movies", []); //quotes are name of this file 
movies.controller("movieController", function ($scope, $http){ //quotes are name of function called in index 

    $http.jsonp("http://api.rottentomatoes.com/api/public/v1.0/movies/155655062.json?apikey=wq98h8vn4nfnuc3rt2293vru") 

    .sucess(function(data) 
      {$scope.movies = data;}) 
    .error(function(data){}); 
}); 

ответ

4

Вы должны включить JSON_CALLBACK в URL. В противном случае API возвращает JSON вместо JSONP. В приведенном ниже коде я использую объект конфигурации вместо параметров непосредственно в строке запроса. Просто потому, что его легче читать, вы также можете использовать свою версию и добавить к URL-адресу & callback = JSON_CALLBACK. См 'JSONP' in the docs

Рабочая скрипку: http://jsfiddle.net/pascalockert/fM7jb/

код в контроллере:

$http.jsonp('http://api.rottentomatoes.com/api/public/v1.0/movies/155655062.json', { 
    params: { 
     apikey: 'wq98h8vn4nfnuc3rt2293vru', 
     callback: 'JSON_CALLBACK' 
    } 
}) 
.success(function (data) { 
    $scope.movies = data; 
}); 
+0

работал идеально, спасибо. Я экспериментировал с обратным вызовом, но он всегда находился в конце URL-адреса. Мне нравится, как вы положили его в парам. это не только работало, но читать было легче. – Ryan