使用AngularJS从Web服务加载数据

问题描述:

我无法从Web服务加载一些数据。我创造了这个工厂:使用AngularJS从Web服务加载数据

.factory('urlService', function($http) { 
    var service = { 
    getURLStatus: function(urlElgg){ 
    var urlElgg = 'http://'+urlElgg+'/services/api/rest/xml/?method=system.api.list'; 
    $http({method: 'GET', url: urlElgg}). 
     success(function(data) { 
     console.log("success"); 
     }). 
     error(function(data) { 
     console.log("error"); 
     }); 
    } 
    }; 
    return service; 
}) 

而且我有这个控制器:

$scope.doAddCommunity = function() { 
    console.log('Doing Add Community', $scope.communityData.url); 
    urlService.getURLStatus($scope.communityData.url); 
    }; 

一切正常,但是当我发网址总是得到“错误”,而不是“成功”。我做错了什么?

+0

你得到的错误信息是什么?尝试在Error回调的'console.log()'中使用'angular.toJson(data)',并在这里发布错误消息。 – jsfrocha 2014-10-06 09:03:33

+0

我没有收到任何错误消息,只有代码进入$ http函数的错误部分,所以我收到字符串“错误”作为结果。 – pabloasc 2014-10-06 09:12:14

+0

请执行@jsfrocha所说的话,用'console.log(data)'替换'console.log(“error”)'并告诉我们你在控制台中得到了什么。 – bmleite 2014-10-06 09:25:11

你有什么是跨域请求问题。为了理解它,请花点时间阅读Same-origin policy

由于您无法按“原样”执行请求,这意味着CORS未启用。你的其他选择是使用JSONP,但是我不认为JSONP目前被app.coldtrick.com API支持。

除非在服务器端启用了其中一个选项,否则您将无法直接从JS应用程序执行这些请求。