2013-02-19 6 views
6

Ich habe Yeoman 0.9 bis gestern verwendet, als ich beschlossen, die Beta 1.0-Version auf OS X zu verwenden. Ich benutze Yeoman, um eine eckige App zu entwickeln.Cross-Domain-Anrufe mit Yeoman (1.0) Grunt-Server

Mit der Yeoman 0.9 -> 1.0 Migration meiner app getan und arbeitet, ich bin jetzt daran interessiert, den Dev-Server von Yeoman Grunzen Server mir Cross-Domain machen, damit Feuer und Flamme zu verlängern ruft eine API, die von einem anderen Team entwickelt wurde und auf einem anderen Server gehostet wird, wo sie bereits bereichsübergreifende Aufrufe erlaubt haben. Bis jetzt haben wir ein gefälschtes http-Backend mit freundlicher Genehmigung von angular.js verwendet.

--An aside--

Wenn jemand hat dies für eine schnelle Lösung suchen, zu lesen, wir haben Cross-Domain-Anrufe arbeiten, indem man die --disable-Web-Sicherheit Option Chrome von der Befehlszeile mit this approach unter OS X mit Chrome, aber es deaktiviert die Sicherheit für ganz Chrome (Daumen nach unten) und wir können Chrome nicht als neue Instanz starten.

--Ende aside--

Durch einige Graben ich this Stack Overflow post (über die Antwort auf this post) gefunden auf mich eine ziemlich gute Vorstellung zu geben, was ich tun muss Grunzen Server zu erhalten erlaubt bereichsübergreifende Aufrufe Es beinhaltet im Wesentlichen das Hinzufügen einer Middleware-Komponente zum Verbinden, um die Header so zu ändern, dass "Access-Control-Allow-Origin" auf "*" oder was auch immer gesetzt ist.

Wenn ich nichts über Node.js weiß, kann ich sehen, dass die in der Post erwähnte Änderung irgendwo in den vielen von Yeoman erstellten Dateien vorgenommen werden muss, aber wo? Ich habe einige rohe Zeichenketten-Suchen nach "app.configure" und "connect.listen" innerhalb des von Yeoman eingerichteten "node_modules" -Verzeichnisses durchgeführt, aber ich habe eine Anzahl von Treffern gefunden, von denen die meisten aus mit den Modulen gebündelten Beispielen stammen und mir ist nicht klar, was ich bearbeiten soll. Im Fall ist es, hier ist eine Momentaufnahme der Verzeichnisstruktur für meine Winkel App hilft:

enter image description here

Wenn jemand kann mir einige Hinweise auf, wo diese Änderungen würde ich es wirklich schätzen kann gemacht werden!

+0

Bin ich dieses Recht zu verstehen: Ihre Angular App macht CORS-Anfragen und die andere API erhält nur Anfragen CORS? – rdrey

+0

rdrey, das stimmt. Du denkst ich bin auf dem falschen Weg? – coderigo

+0

Ja, tut mir leid. Hier ist ein gut lesbarer Leitfaden für CORS: http://www.html5rocks.com/en/tutorials/cors/ Da Ihre AngularJS-App nur als Client fungiert, müssen alle CORS-Arbeiten von der serverseitigen API ausgeführt werden Jungs. – rdrey

Antwort

1

Sie Apache Proxy verwenden können und Ihren REST-Server mit gruntjs (Angularjs) verbinden.

Apache würde dies tun:

  • Proxy/-> gruntjs
  • Proxy/Service - würde denken> REST-Server

Sie Ihre Anwendung schlagen Apache und Angularjs Anwendung verwenden würden, das ist mit sich selbst sprechen, also kein Cross-Domain-Problem.

Hier ist ein großes Tutorial, wie dies einzurichten: http://alfrescoblog.com/2014/06/14/angular-js-activiti-webapp-with-activiti-rest/

+0

Das ist ziemlich praktisch. Wusste das nicht. Danke @ user3420847. – coderigo

+0

Danke^sehr viel. – user3420847