Proxy & Popup: SyntaxError: JSON.parse unexpected non-whitespace character

Begonnen von LR66, 17 Januar 2018, 18:23:05

Vorheriges Thema - Nächstes Thema

LR66

Hallo,
schon seit früheren Updates kann ich nicht mehr aus dem WWW über einen eigenen Webserver mit Redirector (Reverseproxy) + HTTPS-Authentifizierung auf fhemweb (pgm2) zugreifen:

Es kommen ständige JSON.parse -Popup-Errors:

Beispiel aus Firefox-Debugger zu den Fehler-Popups:
16:06:50.771 Rcvd: 2018-01-17 16:02:48 CUL_HM TFSensor_Sued temperature: 3.0<br>      (fhemweb.js:427:5)
SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line 1 column 5 of the JSON data  (fhemweb.js:978:13)

Hatte nun die ganze Zeit eine extra WebHttps in Fhem angelegt und den Port im Router extra freigegeben (geht super), aber das gefällt mir eigentlich nicht, da vorher die Absicherung des Webservers mit Banning, einem Zertifikat, einem Standardport + Subdomainname reichte.

Kann ein Proxy die von fhem zum Browser geschickte Info so verändern, dass die Popup-Fehler kommen?

Fehlerkonstellation:
- FHEM ist aktuell,
- Zugriff mit Firefox aus WWW auf heimischen Webserver
- Reverseproxy Redirector leitet nach erfolgreicher Authentifizierung am Webserver bei Aufruf https://meine-dyn-domain/fhem...  um auf fhemweb pgm2 (die Web-Instanz) unter 127.0.0.1:8083/fhem
- die Web Instanz von Fhem unter Port 8083 ist im LAN ohne Authentication und zeigt sich erstmal ohne Probleme, die kommen dann bei ersten events
-  Änderung csrfToken = none hat kein Einfluß

Da der Webserver und Redirector schon etwas exotisch ist (Barracudadrive, neu Fuguhub), wollte ich Euch eigentlich damit verschonen ...
Hat jmd. eine Vorstellung wieso ein Redirector das von fhem an Browser gesandte json verändern kann?
Danke, Lutz



rudolfkoenig

Dein Proxy (oder sonstwer?) hat es geschafft, die vom Event-Monitor (console.js) bestellten Daten dem "normalen GUI" (fhemweb.js) zuzustellen.

fhemweb.js bestellt die Benachrichtigung im type=status / JSON Format von FHEMWEB, console.js bestellt diese Daten im type=raw Format (mit <br> hinten dran). Typ-Information haengt bei FHEMWEB an der HTTP Verbindung. Ich vermute, dass der Proxy die Verbindung zu FHEM nicht zumacht, und die Typinformation auf der Verbindung durcheinenderkommt.

Workaround: Event-Monitor ueber Proxy nicht aufrufen :).
Loesung (wenn man Glueck hat): "attr WEB longpoll websocket"

LR66

Mangels genauer HTTP(S) und js-Kenntnisse leider nicht ganz verständlich für mich.
Mit Deinem Vorschlag "attr WEB longpoll websocket" hatte ich kein Glück  :(
Die Popups kommen auf beliebiger Seite, Übersicht oder Floorplan, Raum...

Sorry für die späte Antwort auf Deine prompte Reaktion, Rudolf (hab mangels Mailbenachrichtigung gar nicht gedacht, dass jmd. was dazu geschrieben hat).
Ich werde wohl mal besser ein nginx-ReverseProxy testen, der ist ja auch flexibel einstellbar...

Vielen Dank für FHEM und Dein Engagement hier!
Lutz