2013-02-19 11 views
6

Używam Yeoman 0.9 do wczoraj, kiedy zdecydowałem się użyć wersji beta 1.0 na OS X. Używam Yeomana do opracowania kanciastej aplikacji.Zezwalanie na połączenia międzydomenowe z serwerem pomrucznika Yeoman (1.0)

Z Yeoman 0,9 -> 1,0 migracji mojej aplikacji wykonanej pracy i jestem teraz pragnie przedłużyć serwer dev rozgrzana przez Yeoman grunt serwer aby pozwolić mi na cross-domain wzywa do API opracowany przez inny zespół, hostowany na innym serwerze, na którym zezwolił już na wywołania między domenami. Do tej pory używaliśmy fałszywego backendu http dzięki uprzejmości angular.js.

--An aside--

Jeśli ktoś czyta ten szuka szybkiego rozwiązania, mamy połączenia między domenami pracy poprzez przepuszczenie --disable-web-security opcję Chrome z wiersza poleceń, używając this approach na OS X z Chrome, ale wyłącza zabezpieczenia dla całej przeglądarki Chrome (kciuk w dół) i nie możemy sprawić, że Chrome i tak zostanie uruchomiona jako nowa instancja.

--End aside--

Przez jakiś kopania znalazłem this Stack Overflow post (poprzez odpowiedzi na this post) daje mi całkiem dobry pomysł na to, co trzeba zrobić, aby dostać serwera grunt pozwalając wywołania między domenami. Zasadniczo polega to na dodaniu komponentu oprogramowania pośredniego, aby umożliwić zmianę nagłówków, tak aby "Access-Control-Allow-Origin" było ustawione na "*" lub cokolwiek innego.

Nie wiedząc nic o Node.js, widzę, że zmiana, o której mowa we wpisie, musi być wykonana w wielu plikach utworzonych przez Yeomana, ale gdzie? Zrobiłem kilka surowych wyszukiwań dla "app.configure" i "connect.listen" w katalogu "node_modules" skonfigurowanym przez Yeoman, ale wymyślę kilka trafień, z których większość pochodzi z przykładów dołączonych do modułów i nie jest dla mnie jasne, który powinienem edytować. W przypadku pomaga, oto zrzut struktury katalogów na moim kątowej aplikacji:

enter image description here

Jeśli ktoś może mi dać kilka wskazówek na temat, gdzie te zmiany mogą być dokonywane bym bardzo wdzięczny!

+0

Am I zrozumienie tego prawa: Twoja aplikacja jest kątowa ROBI Cors żądań, a drugi odbiera tylko API żądania Cors? – rdrey

+0

rdrey, zgadza się. Myślisz, że jestem na złej drodze? – coderigo

+0

Tak, przepraszam. Oto świetny i czytelny przewodnik po CORS: http://www.html5rocks.com/en/tutorials/cors/ Ponieważ twoja aplikacja AngularJS działa tylko jako klient, wszystkie działania CORS muszą być wykonywane przez interfejs API po stronie serwera chłopaki. – rdrey

Odpowiedz

1

Można używać proxy Apache i podłączyć serwer spoczywać gruntjs (angularjs).

Apache byłoby to zrobić:

  • proxy/-> gruntjs
  • proxy/usługę -> Serwer REST

byłoby użyć aplikacji uderzenie Apache i angularjs aplikację pomyśli to jest rozmowa sama z sobą, więc nie ma problemu z wieloma domenami.

Oto wielki tutorial jak ustawić to: http://alfrescoblog.com/2014/06/14/angular-js-activiti-webapp-with-activiti-rest/

+0

To bardzo przydatne. Tego nie wiedziałem. Dzięki @ user3420847. – coderigo

+0

Dziękuję^bardzo. – user3420847

Powiązane problemy