我正试图学习在AngularJS中使用$ http.get请求来创建我正在编写的Web应用程序。我有一个本地托管的服务器,它具有我编写的一些API。当我尝试运行我的Angular页面时,我可以在服务器的控制台中看到GET请求已完成,但浏览器中没有加载。在检查浏览器的控制台我发现此错误消息:
XMLHttpRequest cannot load http://127.0.0.1:8080/api/range/?nmax=5&a_max=100&b_max=200, No 'Access-Control-Allow-Origin' header is print on the requested resource. Origin 'null' is therefore not allowed access.
服务器端我正在运行,将采取一个GET请求以上网址,并返回一个JSON字符串看起来像这样的Python的CherryPy服务器:
[
{
"a": 5.6,
"b": 3.2
},
{
"a": 4.3,
"b": 2.6
}
]
这里是我的角码,此刻它尽可能简单:
<!DOCTYPE html>
<html>
<head>
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
</head>
<body>
<div ng-app="myApp" ng-controller="Ctrl">
<ul>
<li ng-repeat="x in peakdata">
{{ x.a + ', ' + x.b }}
</li>
</ul>
</div>
<script>
var myApp = angular.module('myApp', []);
myApp.controller('Ctrl', function($scope, $http) {
$http.get('http://127.0.0.1:1234/api/range/?nmax=5&a_max=100&b_max=200')
.then(function(response){
$scope.peakdata = response.data;
}, function(err) {
throw err;
});
});
</script>
</body>
</html>
任何建议,将不胜感激!
谢谢,肖恩。
编辑:原来,我不得不修改我的AngularJS代码和我的CherryPy脚本。查看我的答案了解更多详情。
虽然这个问题没有回答我的问题,它确实提供了我需要谷歌关键词和术语,我需要的答案,我正在寻找。非常感谢你,我会发布一个答案,详细说明我是如何解决我的问题的。 – Vielbein