我有一个非常基本的角度控制器:
function PirateController($scope, $http) {
$scope.DetermineBooty = function () {
$scope.Processing = true;
$scope.SavedCount = $scope.PirateCount;
$scope.PirateCount = 'Please wait for Booty...';
$http.get('http://www.Suamere.com/Apps/SCA/API/Booty/' + $scope.SavedCount).
success(function (data) {
if (data != '"0"') {
$scope.ResultText = $scope.SavedCount + ' Pirates found a minimum of ' + data + ' coins.';
$scope.PirateCount = $scope.SavedCount;
} else {
$scope.ResultText = $scope.SavedCount + ' - There is no reason to calculate with that value.';
$scope.PirateCount = "";
}
$scope.Processing = false;
}).
error(function (data) {
$scope.ResultText = $scope.SavedCount + ' - There is no reason to calculate with that value.';
$scope.PirateCount = "";
$scope.Processing = false;
});
};
}
当我将这个发布到我的网站时,错误永远不会发生,这很好。此外,成功每次都会正确点击和处理,这很好。
但是当我在VS2013中的本地主机上运行它时,错误总是会发生。数据总是空的。
但是,在Fiddler中,结果似乎是在我的网站或我的本地主机上正确地恢复。那么,为什么,只有在我的VS2013中,当HTTP Return显然有一些东西时,Angular会变空。
答案 0 :(得分:2)
如果您使用的是绝对URL,那么当您在localhost上运行时,您正在发出跨域请求。
使用相对网址或使用变量
设置域名