Wie gesagt, aus Sicherheitsgründen erlauben die Browser eine AJAX Kommunikation nur mit dem Webserver, von dem die Webseite selbst geladen wurde. Ich war bisher der Meinung, es wäre nur die IP Adresse relevant, das war jedoch ein Irrtum, auch der Port muss zwingend der gleiche sein. Daher funktioniert es nicht, openHAB die Visu ausliefern zu lassen und einen zweiten Webserver die PHP Skripte. Beides muss vom gleichen Server kommen.
Damit der Browser dennoch auf fremde URLs zugreift, müssen diese einen Access-Control-Allow-Origin Header schicken. Das kann entweder der Server machen oder das PHP Skript. Eines von beiden muss geändert werden, sonst geht es definitiv nicht. Dass das PHP Skript beim direkten Aufruf funktioniert, ist kein relevanter Test, da hier das Sicherheitskonzept des Browsers nicht zum tragen kommt (keine per AJAX aufgerufene URL).
Wenn es trotz Änderungen immer noch nicht geht, dann poste mal bitte die Fehlermeldung aus der Console des Browsers. Welchen Browser nutzt du eigentlich?
Damit der Browser dennoch auf fremde URLs zugreift, müssen diese einen Access-Control-Allow-Origin Header schicken. Das kann entweder der Server machen oder das PHP Skript. Eines von beiden muss geändert werden, sonst geht es definitiv nicht. Dass das PHP Skript beim direkten Aufruf funktioniert, ist kein relevanter Test, da hier das Sicherheitskonzept des Browsers nicht zum tragen kommt (keine per AJAX aufgerufene URL).
Wenn es trotz Änderungen immer noch nicht geht, dann poste mal bitte die Fehlermeldung aus der Console des Browsers. Welchen Browser nutzt du eigentlich?
Kommentar