2016-08-03 22 views
0

Hallo Ich versuche, an einer Webanwendung zu arbeiten, die auf lokale Dateien und solche über http zugreifen. Die Seite selbst wird lokal geladen, aber das macht Ajax-Aufrufe an einen Webserver.Erhalten Sie lokale Dateien und erhalten Sie Daten aus dem Internet, ohne gegen die gleiche Ursprungsrichtlinie zu verstoßen?

Gibt es eine Möglichkeit, dies zu tun, ohne gegen die Richtlinie gleichen Ursprungs zu verstoßen?

Ich weiß, es gibt many many Möglichkeiten, die gleiche Herkunft Politik zu deaktivieren, aber ich bin auf der Suche nach einem legitimen Weg, weil ich nicht jedes Mal Befehlszeilen Flag übergeben müssen.

Zusätzlich auf Chrome eine ziemlich lästige Popup-Meldung erscheint jedes Mal, diese Fahnen in geben werden.

Gibt es eine Möglichkeit, um dieses?

Antwort

0

Steuern Sie den Webserver? Wenn dies der Fall ist, ist dies mit einer Kombination aus dem Hinzufügen eines CORS-Headers und dem Ausführen eines lokalen http-Servers möglich.

Wie Sie wahrscheinlich wissen, CORS doesn't support local file:// access. Wenn Sie jedoch einen einfachen http-Server lokal ausführen, können Sie diese Dateien über HTTP bereitstellen. CORS unterstützt gerne übergreifende HTTP-Anfragen von localhost.

Zuerst müssten Sie Ihre lokalen Dateien irgendwie bedienen. Es gibt viele einfache HTTP-Webserver für genau diesen Zweck. Eine solche Methode ist Pythons SimpleHTTPServer. Wenn Sie Python installiert ist, können Sie einen lokalen Webserver starten, indem Sie das aktuelle Verzeichnis dient:

python -m SimpleHTTPServer 8080 

Zweitens müssen Sie http://localhost:8080 in der Liste der hinzuzufügen Access-Control-Allow-Origin-Header auf der Fernbedienung Webserver.

Hinweis: Das Hinzufügen von localhost zur Liste der zulässigen Ursprünge für einen Produktionsserver ist wahrscheinlich eine schlechte Idee. Server sollten nur die Richtlinie für denselben Ursprung des Browsers für vertrauenswürdige Webseiten oder für Daten umgehen, die wirklich öffentlich sind.