XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Javascript & Ajax (http://xhtmlforum.de/forumdisplay.php?f=83)
-   -   JsonP und https (http://xhtmlforum.de/showthread.php?t=54274)

netAction 27.10.2008 14:02

JsonP und https
 
Hallo!

Ich würde gerne die Oberfläche von der Funktionalität trennen, indem die Oberfläche in Javascript läuft. Sie soll als statische Webseite auf Server A liegen. Dann kann ich für unterschiedliche Benutzer unterschiedliche Oberflächen schreiben, oder sie installieren sich veränderte Kopien sogar lokal.

Auf dem Server mit der Datenbank liegen die Benutzerdaten (Server B). Ajax von Server A auf Server B funktioniertnicht, weil der Zugriff außerhalb der Domain erfolgt. Einzige Möglichkeit: JsonP (richtig?)

Jetzt müssen auch noch alle Übertragungen verschlüsselt erfolgen. Die Webseite liegt auf dem einen Server A mit https oder lokal und greif auf den Datenbank-Server B mit https zu. Geht das? Es ist ja dann ein anderes Zertifikat.

Thomas

Curtains 27.10.2008 14:46

Hallo netAction,

Zitat:

Zitat von netAction (Beitrag 408200)
Ajax von Server A auf Server B funktioniertnicht, weil der Zugriff außerhalb der Domain erfolgt. Einzige Möglichkeit: JsonP (richtig?)

Ajax wird als Kommunikation zwischen einem Web-Client und einem Web-Server eingesetzt. Und nicht zwischen zwei Web-Servern.
Du meinst wahrscheinlich die folgende Situation:
1) Der Client lädt sich die Webseite (inklusive JS) von Server A
2) Der Client versucht (mit dem geladenen JS von Server A) auf Server B zuzugreifen, was aber wegen der Same Origin Policy nicht klappt.

Es gibt zwei Möglichkeiten, um der Same Origin Policy zu umgehen:
1) Script tag injection (z.B. JsonP)
2) Serverseitiger Proxy

Zitat:

Zitat von netAction (Beitrag 408200)
Jetzt müssen auch noch alle Übertragungen verschlüsselt erfolgen. Die Webseite liegt auf dem einen Server A mit https oder lokal und greif auf den Datenbank-Server B mit https zu. Geht das? Es ist ja dann ein anderes Zertifikat.
Thomas

Ja, es geht:
1) fsockopen() (Server A <-> Server B)
2) Ajax (Webclient <-> Server)

Scheppertreiber 27.10.2008 15:14

Ich würde den Kram mit HTTP GET abholen und dann als Datei includen.
Dürfte die einfachste Möglichkeit sein.

netAction 27.10.2008 16:20

Hallo Curtains!

Zitat:

Zitat von Curtains (Beitrag 408205)
Du meinst wahrscheinlich die folgende Situation:
1) Der Client lädt sich die Webseite (inklusive JS) von Server A
2) Der Client versucht (mit dem geladenen JS von Server A) auf Server B zuzugreifen, was aber wegen der Same Origin Policy nicht klappt.

Genau.

Zitat:

Zitat von Curtains (Beitrag 408205)
Es gibt zwei Möglichkeiten, um der Same Origin Policy zu umgehen:
1) Script tag injection (z.B. JsonP)
2) Serverseitiger Proxy

Nee, JsonP. Proxy ist scheiße. Der läuft lokal nicht, wenn sich jemand eine maßgeschneiderte Oberfläche zu Hause baut.

Zitat:

Zitat von Curtains (Beitrag 408205)
Ja, es geht:
1) fsockopen() (Server A <-> Server B)
2) Ajax (Webclient <-> Server)

Server A ist zur Laufzeit gar nicht mehr im Spiel, vo da wird nur das JS-Programm geholt. Ajax geht aus den bekannten Gründen auch nicht. Was meinst du?

Curtains 27.10.2008 19:18

Was spricht eigentlich dagegen, Server A als Proxy einzusetzen:?:

netAction 27.10.2008 20:08

Ich möchte eine Kopie der Webseite zum Herumtragen haben.

netAction 02.11.2008 20:32

Ich habe sämtliche möglichen Kombinationen ausprobiert. Die Browser stören sich nicht daran, dass unterschiedliche Domains um Zertifikate im Spiel sind.
Einzige Bedingung: Wenn die Webseite verschlüsselt geladen wurde, müssen auch die weiteren Datenquellen verschlüsselt sein.

Mal eine ganz andere Frage. Ich kann ja die Sprache vom Browser abfragen:
Code:

var userLang = (navigator.language) ? navigator.language : navigator.userLanguage;
 alert ("The language is: " + userLang);

Jetzt ist mein Problem: Wie kann ich abhängig von der hier gelieferten Sprache die Texte der Webseite generieren? $('div#infobox').html("Hallo Welt!"); ist klar.
Ich werde eine Datei mit sämtlichen Texten in vielen Sprachen anlegen. Wie muss diese aussehen? Bestimmt gibt es da fertige Ansätze. Weiß jemand Rat?

Thomas

protonenbeschleuniger 03.11.2008 11:20

Wieso willst du eine Datei mit allen Sprachvarianten anlegen? üblich ist für jede Sprache eine Datei und dann reicht sowas:

HTML-Code:

var MSG = {
'hello world': 'Hallo Welt'
};


netAction 03.11.2008 11:52

1. Sprache vom Browser holen
2. Format "en_US" aufbereiten zu "en"
3. Wenn die Sprache unterstützt wird nehmen, sonst Default (="en")
4. Datei mit den passenden Konstanten laden (wenn für jede Sprache eigene Datei)
5. In der Seite die Strings einsetzen. Platzhalter wie ein Datum oder Namen berücksichtigen.

Ich denke, das ist der Weg. Was gibt es da für Möglichkeiten? Die restliche Seite ist in JQuery geschrieben.
Nach einigen Stunden der Suche brauche ich einen Hinweis.
Thomas

cybaer 06.11.2008 16:39

Zitat:

Zitat von netAction (Beitrag 409063)
Wie kann ich abhängig von der hier gelieferten Sprache die Texte der Webseite generieren?

Bedenke aber, daß die Sprache des Webbrowsers nichts über die gewünschte Sprache aussagt. Für letzteres gibt es den Accept-Language-Request-Header.


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:48 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023