使用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);
};
一切正常,但是当我发网址总是得到“错误”,而不是“成功”。我做错了什么?
答
你有什么是跨域请求问题。为了理解它,请花点时间阅读Same-origin policy。
由于您无法按“原样”执行请求,这意味着CORS未启用。你的其他选择是使用JSONP,但是我不认为JSONP目前被app.coldtrick.com API支持。
除非在服务器端启用了其中一个选项,否则您将无法直接从JS应用程序执行这些请求。
你得到的错误信息是什么?尝试在Error回调的'console.log()'中使用'angular.toJson(data)',并在这里发布错误消息。 – jsfrocha 2014-10-06 09:03:33
我没有收到任何错误消息,只有代码进入$ http函数的错误部分,所以我收到字符串“错误”作为结果。 – pabloasc 2014-10-06 09:12:14
请执行@jsfrocha所说的话,用'console.log(data)'替换'console.log(“error”)'并告诉我们你在控制台中得到了什么。 – bmleite 2014-10-06 09:25:11