クロスサイトスクリプティングを行う必要があります。以下のコード ブロックには jsonp のメソッドが含まれており、メソッドは失敗したかのように返されますが、get リクエストに変更すると成功します。jsonp メソッドを使用して正常に応答できるようにする必要があります。以下は除外できます。応答は有効な json で、このパラメーターは URL ?callback=JSON_CALLBACK にあります。これは、http リクエストを実行して受け取った json と、このコードを実行するコード ブロックです。
http 応答ステータス コード 200
[{"cube":"1" ,"points":"160"},{"cube":"2","points":"690"},{"cube":"3","points":"331"}]
コードブロック
var myApp = angular.module('test', []);
myApp.controller('UserCtrl', function($scope, users) {
$scope.usersPerCube = users.getUsers();
})
myApp.factory('users', function($http) {
return {
getUsers: function() {
var deferred = $q.defer();
var url = "http://localhost/api/api/index.php/analytics/UsersPerCube?callback=JSON_CALLBACK";
$http.get(url).success(function (data, status, headers, config) {
console.log(data);
deferred.resolve(data);
}).error(function (data, status, headers, config) {
//this always gets called
console.log(status);
deferred.reject(status);
});
return deferred.promise;
}
}
サーバー側のコードを編集し、現在受信していることに注意してください
"angular.callbacks._1( {"cube":"1","points":"160"},{"cube":"2","points":"690"},{"cube":"3","points":"331"})"
更新 上記は有効であり、成功メソッドが実行されています。オブジェクトを解析する方法を理解する必要があります。答えがわかったらまた投稿します。