2016-11-24 3 views
0

ich eine Web-Anwendung w1 haben (SPA): Die Webserver WS wird in einem physischen Server X Die Application AS il befindet sich in einem anderen physischen Server Y.Server-Struktur für Web-Anwendung

befindet

der Benutzer den Anruf der Webserver zum Starten w1-Anwendung (http://WS/w1) Nicht der Browser haben die Ansicht, aber nicht die Daten. Um Daten w1 applicatio Anruf AS durch Ajax-HTTP-GET-Anrufe (http://AS/car/df785er/plate zum Beispiel eine Platte aus einem Auto Retrie) abrufen

Summieren, in einem MVC-Design, die Ansicht von WS abgerufen wird, wird das Modell von AS abgerufen.

Diese Struktur ist korrekt? Oder die richtige Struktur hat WS und AS in der gleichen physischen Maschine?

Antwort

1

Die Struktur Ihrer Anwendung ist korrekt ... ABER der Browser blockiert aus Sicherheitsgründen die Ajax-Anfragen, die an das Modell AS gestellt werden.

Es gibt mehrere mögliche Lösungen. Diejenigen, die ich verwendet habe sind:

  1. aktivieren CORS auf AS-Server. Dadurch kann der Browser Anrufe an AS senden Es ist wirklich einfach, wenn Sie nur GET-Anfragen machen. Sie fügen einfach einen HTTP-Header (Access-Control-Allow-Origin :) zur Antwort hinzu Für Details zu CORS: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
  2. Verwenden Sie einen Reverseproxy auf WS, um Aufrufe an AS: z. alle Anfragen an/api/WS Reverse proxyed zu http://AS/
wird

Welche Lösung hängt von Überlegungen zur Sicherheit anzuwenden, welche Art von Anfragen Sie machen (zB. CORS erlaubt nur GET, HEAD amd POST), usw. ...

+0

Grazie Filippo! Ich benutze bereits CORS. Mein Problem ist, dass ich cookie zu AS als sessionid erneut zu senden ... Ich rufe meinen Anwendungsserver, um zum Beispiel einen Anhang von einem direkten http GET ohne benutzerdefinierten Ajax-Aufruf (der Benutzer nur einen Link) und nicht immer das GET abzurufen sende mein sessionid cookie – padibro

+0

Durch deine 2. Lösung denke ich, dass das Problem gelöst wäre – padibro

+1

Ja in diesem Fall sollte der Reverseproxy gut funktionieren – filippo

Verwandte Themen