2013-02-19 11 views
6

Ho utilizzato Yeoman 0.9 fino a ieri quando ho deciso di utilizzare la versione beta 1.0 su OS X. Uso Yeoman per sviluppare un'app angolare.Permettere chiamate interdominio con il server Yeoman (1.0) grunt

Con la Yeoman 0.9 -> 1.0 migrazione di mia app fatto e di lavoro, ora sono pronta ad estendere il server dev licenziato dalla Yeoman server di grugnito per permettere a me di fare cross-domain chiama a un'API sviluppata da un altro team, ospitata su un altro server, in cui hanno già consentito chiamate tra domini. Fino ad ora abbiamo utilizzato un finto backend http per gentile concessione di angular.js.

--Un aside--

Se qualcuno sta leggendo questa ricerca di una soluzione rapida, abbiamo ottenuto le chiamate cross-domain di lavoro passando l'opzione --disable-web-sicurezza a Chrome dalla riga di comando utilizzando this approach su OS X con Chrome, ma disattiva la sicurezza per tutti i Chrome (pollice verso il basso) e non è possibile ottenere comunque Chrome come nuova istanza.

--end aside--

Attraverso un po 'scavare ho trovato this Stack Overflow post (attraverso la risposta al this post) avermi dato una buona idea su quello che devo fare per ottenere server di grugnito permettendo chiamate interdominio. Si tratta essenzialmente di aggiungere un componente middleware da connettere per consentire di modificare le intestazioni in modo che "Access-Control-Allow-Origin" sia impostato su "*" o qualsiasi cosa voglia.

Non sapendo nulla di Node.js, posso vedere il cambiamento a cui alludere nel post deve essere fatto da qualche parte nei molti file creati da Yeoman, ma dove? Ho effettuato alcune ricerche di stringhe grezze per "app.configure" e "connect.listen" all'interno della directory "node_modules" impostata da Yeoman, ma ho trovato un certo numero di hit, molti dei quali provengono da esempi in bundle con i moduli e non è chiaro per me che dovrei modificare. In caso aiuta, ecco un'istantanea della struttura di directory per la mia app angolare:

enter image description here

Se qualcuno mi può dare alcune indicazioni su dove queste modifiche possono essere apportate Mi piacerebbe davvero grato!

+0

Am I capire questo diritto: La tua app angolare sta facendo CORS richieste e l'altra API riceve solo richieste CORS? – rdrey

+0

rdrey, è vero. Pensi che sia sulla strada sbagliata? – coderigo

+0

Sì, mi dispiace. Ecco una guida leggibile su CORS: http://www.html5rocks.com/en/tutorials/cors/ Poiché la tua app AngularJS funziona solo come client, tutto il lavoro CORS deve essere eseguito dall'API lato server ragazzi. – rdrey

risposta

1

È possibile utilizzare Apache proxy e collegare il server REST con gruntjs (angular.js).

Apache avrebbe fatto questo:

  • proxy/-> gruntjs
  • proxy/servizio -> server di REST

si usa l'applicazione colpire Apache e l'applicazione angular.js potrebbe pensare che sta parlando con se stesso quindi nessun problema di dominio incrociato.

Qui è un grande tutorial su come impostare questa funzione: http://alfrescoblog.com/2014/06/14/angular-js-activiti-webapp-with-activiti-rest/

+0

È molto utile. Non lo sapevo. Grazie @ user3420847. – coderigo

+0

Grazie mille. – user3420847

Problemi correlati