我正在尝试构建一个示例应用程序,该应用程序将使用 JSONP 抓取数据进行填充。我把它放在http://angular.onagrag.com/ 并点击注册。
我要加载的文件位于http://api.onagrag.com/data.json
当我访问http://angular.onagrag.com/register时,它会触发对象的错误方法(并且会触发两次)
这是我正在使用的 Angular js 文件(它也位于http://angular.onagrag.com/js/test.js
如果我使用本地数据(例如使用 $http.get 方法而不是 $http.jsonp 方法),它运行良好,但不适用于 jsonp。任何帮助表示赞赏!
var App = angular.module('popdust', ['ngResource']).config(['$locationProvider', function($location) {
$location.html5Mode(true).hashPrefix('!')
}]);
App.config(['$routeProvider', function($routes) {
$routes.when('/register',{
templateUrl : '/templates/register.html',
controller : RegisterCtrl
});
$routes.when('/',{
templateUrl : '/templates/home.html',
controller : HomeCtrl
});
}]);
var HomeCtrl = function($scope, $http, $location) {
$scope.title = 'We are home';
$scope.obj = ['one', 'two','three'];
};
var RegisterCtrl = function($scope, $http, $location) {
$scope.title = 'Register!';
$scope.handleData = function(data){
$scope.fields = data;
}
$scope.fetchjsonp = function(){
$http.jsonp('http://api.onagrag.com/data.json?callback=JSON_CALLBACK').success(function(data){
alert("success");
}).error(function(data, status, headers, config) {
alert("YOU FAIL");
});
}
$scope.fetch = function(){
$http.get('js/data.json').success($scope.handleData);
}
$scope.fetchjsonp();
};
HomeCtrl.$inject = ['$scope','$http','$location'];
RegisterCtrl.$inject = ['$scope','$http','$location'];