2017-10-30 1 views
0

Ich bin neu mit Angular und versuchen, einige grundlegende UI Sachen gehen zu bekommen. Ich habe einen RESTful Spring Service in Betrieb. Als ich meinen Dienst curl:

curl http://myPersonalSite.com:1313/service/event?id=1 

erhalte ich eine JSON-Antwort Sachen enthalten, die eine „id“, „Beschreibung“ usw. den identischen Code verwenden, aber für die man die URL Schale heraus in einem Beispiel gegeben Ich folge

Ich bekomme auch eine JSON-Antwort mit "ID" und "Inhalt". Die Beispiel-URL Ergebnisse in der ID zeigt, wenn ich

spring run app.groovy 

laufen ... aber wenn ich es das Gerät, für meinen Dienst-URL, wird die ID nicht angezeigt. Es scheint nicht möglich zu sein, Informationen von der JSON-Antwort von meinem Dienst zu erhalten. Was fehlt mir hier?!?

/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 - einfach:

@Controller class JsApp { }

... und dann starte ich spring run app.groovy und die Beispiel-URL rendert die ID im Browser, aber meine URL rendert die Seite, aber es gibt keine ID. Auch hier gibt curl für beide URLs JSON zurück, die beide enthalten und "id" Schlüssel. Ich habe ein wenig über JSON Strings vs Objekte gelesen, und das scheint hier nicht das Problem zu sein. Jede Hilfe würde sehr geschätzt werden.

note - die folgenden Threads ist ähnlich, aber etwas anders jQuery - .get works for 1 URL but not another

Antwort

0

Ich denke, Ihre Anfrage wird durch CORS Politik blockiert wird. Sie können Ihre Browser-Konsole überprüfen, wenn eine Fehlermeldung wie "... wurde von CORS-Richtlinie blockiert: Kein 'Access-Control-Allow-Origin'-Header auf der angeforderten Ressource vorhanden ist".

Die Rest-Service-Antwort hat Access-Control-Allow-Origin festgelegt, wenn Sie die Netzwerkregisterkarte von Chrome überprüfen.

Der Browser blockiert die Ajax-Anforderung, wenn die Domäne der angeforderten Ressource von der Seitendomäne abweicht und kein geeigneter Access-Control-Allow-Origin-Header auf der Serverseite festgelegt ist.

Verwandte Themen