我是Angular的新手,并试图获得一些基本的UI内容。我启动并运行了RESTful Spring服务。当我卷曲服务时:
curl http://myPersonalSite.com:1313/service/event?id=1
我收到包含“id”,“description”等内容的JSON响应。 使用相同的代码,但切换出我正在关注的示例中给出的URL
curl http://rest-service.guides.spring.io/greeting
我还获得了带有“id”和“content”的JSON响应。 示例网址导致我在运行时显示ID
spring run app.groovy
...但是当我将其切换为我的服务URL时,不显示ID。它似乎无法从我的服务中获取JSON响应的任何信息。我在这里缺少什么?!?
/public/index.html:
<html ng-app="demo">
<head>
<title>Hello AngularJS</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
<script src="hello.js"></script>
</head>
<body>
<div ng-controller="Hello">
<p>The ID is {{event.id}}</p>
</div>
</body>
/public/hello.js:
angular.module('demo', [])
.controller('Hello', function($scope, $http) {
$http.get('http://rest-service.guides.spring.io/greeting'). // this works
//$http.get('http://myPersonalSite.com:1313/service/event?id=1'). // this doesn't work
then(function(response) {
$scope.event = response.data;
});
});
app.groovy - 简单地说:
@Controller class JsApp { }
...然后我运行spring run app.groovy
并且示例网址在浏览器中呈现ID正常,但我的网址呈现页面但没有ID。同样,两个URL的curl都返回包含和“id”键的JSON。我已经阅读了一些关于JSON字符串与对象的内容,这似乎不是问题所在。任何帮助将不胜感激。
注意 - 以下主题类似,但略有不同jQuery - .get works for 1 URL but not another
答案 0 :(得分:0)
我猜你的请求被CORS政策阻止了。您可以检查浏览器控制台是否有任何错误消息,例如“...已被CORS策略阻止:请求资源上没有'Access-Control-Allow-Origin'标头”。
如果您检查Chrome的网络标签,则休息服务响应实际设置了Access-Control-Allow-Origin。
如果请求的资源的域与页面域不同,浏览器将阻止ajax请求,并且没有在服务器端设置正确的Access-Control-Allow-Origin标头。