Bernd87: javascritp-Variable übergeben

Hallo zusammen.

Mittels button wird eine Javascript-Funktion "Daten" aufgerufen welche sämtliche Variablen aus Tabellen sammelt. Die Variablen sind in der Form:

**<script>

...

var Daten= Danten1 + ',' +Daten2; (ein Komma dazwischen würde fehlen)

//alert(Daten); //Funktioniert :)

</script>**

Wie bekomme ich diese Variable "Daten" nun an einen IP gesendet? Für Anregungen Ideen bin ich sehr Dankbar.

Danke im Vorraus

  1. Tach,

    Wie bekomme ich diese Variable "Daten" nun an einen IP gesendet?

    mit welchem Protokoll wolltest du die Daten senden? Falls die Antwort HTTP lautet, würde sich XMLHttpRequest oder ein HTML-Formular anbieten; unter Umständen würde auch eine Weiterleitung mit Javascript funktionieren.

    mfg
    Woodfighter

    1. XMLHttpRequest gefällt mir schon mal!!! ;-) Leider bekomme ich für das Senden keinen schönen Response, da die IP als "Seite" interpretiert wird.

      ==> GET http://pausensignal.localdomain/website/192.168.2.226 404 (Not Found)

      Dr. Google ist in dem Fall leider nicht mein Freund!

      wie kann ich ihm verklickern dass ich eine IP meine?

      Danke,

      Benrd (und wie bekomme ich einen einfachen zeihlenumbruch in dem Forum hin? \n funktioniert nicht :D)

      1. Hallo Bernd87,

        (und wie bekomme ich einen einfachen zeihlenumbruch in dem Forum hin? \n funktioniert nicht :D)

        Oberhalb des Antwortfeldes steht „Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.“

        Bis demnächst
        Matthias

        --
        Das Geheimnis des Könnens liegt im Wollen. (Giuseppe Mazzini)
      2. Hi,

        XMLHttpRequest gefällt mir schon mal!!! ;-) Leider bekomme ich für das Senden keinen schönen Response, da die IP als "Seite" interpretiert wird.

        ==> GET http://pausensignal.localdomain/website/192.168.2.226 404 (Not Found)

        Wenn Du als URL für den XMLHttpRequest nur 192.168.2.226 angegeben hast, wird das, mangels Protokoll, Server, Pfad ... als relative Url interpretiert. Relativ zur Seite, aus der heraus der Aufruf erfolgt.

        cu,
        Andreas a/k/a MudGuard

        1. Tach,

          Wenn Du als URL für den XMLHttpRequest nur 192.168.2.226 angegeben hast, wird das, mangels Protokoll, Server, Pfad ... als relative Url interpretiert. Relativ zur Seite, aus der heraus der Aufruf erfolgt.

          und wenn du einen anderen Server als Ziel des Requests haben willst, musst du die [Same-origin_policy](https://en.wikipedia.org/wiki/Same-origin policy) beachten.

          mfg
          Woodfighter

          1. und wenn du einen anderen Server als Ziel des Requests haben willst, musst du die [Same-origin_policy](https://en.wikipedia.org/wiki/Same-origin policy) beachten.

            bezieht ich die "Same-Origin-policy" nicht auf den, wie der Name schon sagt, gleichen Ursprung, sprich den gleichen Server(unterordner/überordner)?

            Oder war das eine Fangfrage?!? :)

            und wenn ich einen anderen Server ansprechen will, wie gehe ich da vor? gibt es da einen Links zu?

            DAnke

            1. Moin!

              und wenn ich einen anderen Server ansprechen will, wie gehe ich da vor? gibt es da einen Links zu?

              Stichwort und Link: CORS

              Die erforderlichen HTTP-Header kannst Du unter vielem anderen mit PHP oder mit dem Apache senden.

              Bevor Du Dich damit befasst solltest Du allerdings wenigstens einen Request und dessen Verarbeitung ohne diese Schwierigkeit hinbekommen.

              Jörg Reinholz

        2. Wenn Du als URL für den XMLHttpRequest nur 192.168.2.226 angegeben hast, wird das, mangels Protokoll, Server, Pfad ... als relative Url interpretiert. Relativ zur Seite, aus der heraus der Aufruf erfolgt.

          Wie kann ich denn Protokoll, Server und Pfad angeben?

          Aufbau:

          ( [Browser]-->[SERVER]-->[192.168.2.226] ) <=Alles ein subnetz ...klar 192...

          DAnke

          1. Tach,

            Wie kann ich denn Protokoll, Server und Pfad angeben?

            indem du da, wo die open-Funktion eine URI/URL erwartet eine eben solche mit Protokoll, Server und Pfad angibst. In etwas so, wie ich den Links, die ich hier im Posting gesetzt habe, eine URI ins SELFHTML-Wiki (mit Protokoll, Server und Pfad) angegeben habe.

            mfg
            Woodfighter

            1. Moin!

              Wie kann ich denn Protokoll, Server und Pfad angeben?

              indem du da, wo die open-Funktion eine URI/URL erwartet eine eben solche mit Protokoll, Server und Pfad angibst.

              @woodfighter:

              Es ist nicht nett, eine Frage mit der Frage zu beantworten. Es ist doch offenkundig, dass das hier nicht hilfreich ist.

              @Bernd87

              Irgendwo hast Du offenbar nur 192.168.2.226 als Adresse angegeben.

              Da müsste aber etwas wie http://192.168.2.226/foo/bar.php stehen. Das nennt man "absolute URI"

              Alternativen mit "relativen URI":

              1. //192.168.2.226/foo/bar.php : Der Request geht mit dem gleichen Protokoll (http:/https) an den Server 192.168.1.2, Skript: /foo/bar.php
              2. /foo/bar.php: Der Request geht mit dem gleichen Protokoll (http:/https) an den gleichen Server von dem die Webseite stammt, aber an das Skript: /foo/bar.php - Das ist mit Pfad gemeint.
              3. ?test=1: Der Request geht mit dem gleichen Protokoll (http:/https) an den gleichen Server und an das gleiche Skript: /foo/bar.php, es wird dem Server die Information übermittelt, dass dem Skript ein Name-Wert-Paar test=1 bekannt gemacht werden soll.

              Jörg Reinholz

              1. Hallo

                Wie kann ich denn Protokoll, Server und Pfad angeben?

                indem du da, wo die open-Funktion eine URI/URL erwartet eine eben solche mit Protokoll, Server und Pfad angibst.

                @woodfighter:

                Es ist nicht nett, eine Frage mit der Frage zu beantworten. Es ist doch offenkundig, dass das hier nicht hilfreich ist.

                Kannst du mir erklären, wo hier eine Frage mit einer Frage beantwortet wurde? Kannst du begründen, warum du die Links aus dem zitierten Text entfernt hast, die zu Seiten führten, die die Antworten auf die Frage enthalten? Das ist nämlich auch weder hilfreich noch nett.

                Tschö, Auge

                --
                Wir hören immer wieder, dass Regierungscomputer gehackt wurden. Ich denke, man sollte die Sicherheit seiner Daten nicht Regierungen anvertrauen.
                Jan Koum, Mitgründer von WhatsApp, im Heise.de-Interview
                1. Moin!

                  Hallo

                  Wie kann ich denn Protokoll, Server und Pfad angeben?

                  indem du da, wo die open-Funktion eine URI/URL erwartet eine eben solche mit Protokoll, Server und Pfad angibst.

                  @woodfighter:

                  Es ist nicht nett, eine Frage mit der Frage zu beantworten. Es ist doch offenkundig, dass das hier nicht hilfreich ist.

                  Kannst du mir erklären, wo hier eine Frage mit einer Frage beantwortet wurde?

                  Siehe oben. Aber nicht eine Frage mit EINER Frage, sondern eine Frage mit DER Frage. Ist doch eindeutig:

                  Frage: "Wie kann ich denn Protokoll, Server und Pfad angeben?"
                  Antwort: "indem du da, wo die open-Funktion eine URI/URL erwartet eine eben solche mit Protokoll, Server und Pfad angibst."

                  Ich kann das Offenkundige gerne auch ganz genau erklären.

                  Das ist nämlich auch weder hilfreich noch nett.

                  Ich habe die schnoddrige Antwort aus dem Text wieder in die Antwort kopiert, nachdem ich eigentlich alles gelöscht hatte, weil ich ursprünglich nur Bernds Frage beantworten und woodfighter ignorieren wollte.

                  Jörg Reinholz

                  1. Hallo

                    Wie kann ich denn Protokoll, Server und Pfad angeben?

                    indem du da, wo die open-Funktion eine URI/URL erwartet eine eben solche mit Protokoll, Server und Pfad angibst.

                    @woodfighter:

                    Es ist nicht nett, eine Frage mit der Frage zu beantworten. Es ist doch offenkundig, dass das hier nicht hilfreich ist.

                    Kannst du mir erklären, wo hier eine Frage mit einer Frage beantwortet wurde?

                    Siehe oben. Ist doch eindeutig:

                    Frage: "Wie kann ich denn Protokoll, Server und Pfad angeben?"
                    Antwort: "indem du da, wo die open-Funktion eine URI/URL erwartet eine eben solche mit Protokoll, Server und Pfad angibst."

                    Ja, und? Es ist die Antwort – mit von dir entfernten Links zu entsprechenden Ressourcen –, die du danach (mit ein paar Ergänzungen) auch gibst. Und wo da die von dir unterstellte Frage ist, hast du hier nicht dargelegt.

                    Ich kann das Offenkundige gerne auch ganz genau erklären.

                    Mach mal.

                    Das ist nämlich auch weder hilfreich noch nett.

                    Ich habe die schnoddrige Antwort aus dem Text wieder in die Antwort kopiert, nachdem ich eigentlich alles gelöscht hatte, weil ich ursprünglich nur Bernds Frage beantworten und woodfighter ignorieren wollte.

                    Ich sehe in woodfighters Antwort, auch wenn sie in meinen Augen keineswegs emphatisch ist, keine Schnoddrigkeit und eine Frage schon garnicht.

                    Tschö, Auge

                    --
                    Wir hören immer wieder, dass Regierungscomputer gehackt wurden. Ich denke, man sollte die Sicherheit seiner Daten nicht Regierungen anvertrauen.
                    Jan Koum, Mitgründer von WhatsApp, im Heise.de-Interview
                  2. Hallo,

                    weil ich ursprünglich nur Bernds Frage beantworten und woodfighter ignorieren wollte.

                    Warum antwortest du denn dann auf woodfighters Posting und nicht einfach auf Bernds?

                    Gruß
                    Kalk

              2. Tach,

                Es ist nicht nett, eine Frage mit der Frage zu beantworten.

                mal abgesehen davon, dass der Beitrag auf den du geantwortet hast, keine Frage enthält, würde ich diese Aussage nicht unterschreiben; mir hat die sokratische Methode schon sehr oft weitergeholfen und ich habe sie auch schon öfter genutzt, um anderen zu helfen.

                Es ist doch offenkundig, dass das hier nicht hilfreich ist.

                Nicht für mich, aber das kann an mir liegen und ich kann es nicht ausschließen.

                Ich schreibe halt ungerne längere Texte, wenn meiner Ansicht nach ein Link auf externe Quellen ausreichend ist (vorallem weil mir es auch lieber ist, ebensolche Antworten zu erhalten; Fefe beschreibt das hier ab „Zweitens“ (das was unter erstens steht, finde ich eher problematisch), aber es macht vielleicht trotzdem klar, wo ich herkomme: https://blog.fefe.de/?ts=a8ebf591).

                mfg
                Woodfighter

            2. Hallo!

              Ich habe den Code in der Form:

              **var xhr= new XMLHttpRequest();

              xhr.open("GET","http://192.168.2.226",false);

              xhr.send(Daten);**

              also Methode, Protokoll und asynchrone Übertragung... und erhalte immernoch:

              **XMLHttpRequest cannot load http://192.168.2.226/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://TEST.localdomain' is therefore not allowed access. **

              Ich habe leider keine andere Einstellungsmöglichkeiten zum übertragen der Daten gefunden, oder suche ich immernoch an der falschen Stelle???

              wie muss das den aussehen? oder fehlt meinem Apache-Server nur eine Erlaubnis?

              Danke Bernd

              1. Tach,

                **XMLHttpRequest cannot load http://192.168.2.226/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://TEST.localdomain' is therefore not allowed access. **

                Ich habe leider keine andere Einstellungsmöglichkeiten zum übertragen der Daten gefunden, oder suche ich immernoch an der falschen Stelle???

                Ok, jetzt geht dein Request also an den richtigen Ort, aber die schon erwähnte Same Origin Prolicy schlägt zu. Grob gesagt: Der Browser verbietet einem Javascript, das unter http://example.org geladen wurde den Zugriff auf die Ressource unter http://192.168.42.24/.

                wie muss das den aussehen? oder fehlt meinem Apache-Server nur eine Erlaubnis?

                Jörg hatte eine der möglichen Lösungen bereits erwähnt: https://forum.selfhtml.org/self/2016/mar/11/javascritp-variable-uebergeben/1663218#m1663218 Da du einen Apache nennst, könntest du den unter 192.168.2.226 dazu bringen für die angeforderte Ressource den Header „Access-Control-Allow-Origin“, der Link zur Beschreibung der dafür nötiogen Konfiguration ist ebenfalls in Jörgs Posting.

                mfg
                Woodfighter

                1. JUNGS!!! Ich bin euch zu Dank verpflichtet

                  ...ihr braucht euch doch aber nicht gegenseitig wegen meinen Säumnissen verbal zu kabbeln! :)

                  die URL oder die URI in diesem Fall kann ich nicht weiter differenzieren da es sich bei dem Ziel um einen Arduino Ethernet handelt. Dieser besitzt keine tiefere Verzweigung.

                  Und mit dem "Apache Module mod_headers", Danke @Jörg Reinholz, werde ich mich umgehend beschäftigen. (...und wenn es das letzte ist was ich tue! ;-) )

                  Meldung asap!

                  Danke

                  1. Hallo zusammen!

                    Ich habe mich durch den trockenen Wust an Informationen mehrfach durchzuquälen(in Kombination mit anderen Seiten die mir Google freundlicher Weise zur Verfügung stellte) aber leider gab es nirgendwo ein ordentliches Bsp. diesbezüglich!

                    Filtern konnte ich dabei, dass eine Änderung innerhalb des Apache-Servers notwendig ist.

                    1. die Aktivierung des Moduls mod_header.so in der .httpd.conf

                    2. das hinzufügen des Headers in der httpd.conf:

                    *Header add Access-Control-Allow-Origin "*"

                    Header add Access-Control-Allow-Headers "origin"

                    Header add Access-Control-Allow-Methods "PUT, GET, POST"*

                    Aber dennoch:

                    **XMLHttpRequest cannot load http://192.168.2.226/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://TEST.localdomain' is therefore not allowed access. **

                    Ich habe den Empfänger(Arduino) soweit gebracht dass er reagiert. Soll soviel heißen wie: Er erkennt einen neuen Clienten und erzeugt eine Ausgabe sobald man daten schicken möchte!

                    Es wird also die Verbindung geöffnet aber keine Daten gesendet. Entsteht das immernoch durch die Rechtevergabe CORS oder ist mein Arduino nicht in der Lage die Daten zu analysieren?

                    Nachdem ich die Daten gesendet habe, verlange ich eine ResponseText.

                    **var xhr= new XMLHttpRequest();

                    xhr.open("GET","http://192.168.2.226",false);

                    xhr.send(Daten);

                    alert(xhr.responseText);**

                    Diesen Meldung erhalte ich. Er ist zwar leer, aber er ist da. Die Fehlermeldung erhalte ich erst wenn diese MessageBox geschlossen wird.

                    Ich freue mich über jede Hilfe...ich weiß leider nicht wo ich anpacken muss, oder sind meine Header totaler Müll?

                    Danke im Voraus, Bernd

                    1. Tach,

                      Ich habe mich durch den trockenen Wust an Informationen mehrfach durchzuquälen(in Kombination mit anderen Seiten die mir Google freundlicher Weise zur Verfügung stellte)

                      technische Dokumentation sind halt leider keine humorischen Kurzgeschichten.

                      aber leider gab es nirgendwo ein ordentliches Bsp. diesbezüglich!

                      http://enable-cors.org/server_apache.html ist auf der erste Treffer in meiner Suchmaschine der Wahl.

                      Filtern konnte ich dabei, dass eine Änderung innerhalb des Apache-Servers notwendig ist.

                      Soweit korrekt.

                      1. die Aktivierung des Moduls mod_header.so in der .httpd.conf

                      Das ist im Allgemeinen nicht mehr die bevorzugte Methode (es kann aber sein, dass der Apache auf deinem RasPi noch eine solche monolithische Konfiguration hat), aber sollte trotzdem funktionieren (sofern der erste Punkt im Dateinamen ein Tippfehler war)

                      1. das hinzufügen des Headers in der httpd.conf:

                      *Header add Access-Control-Allow-Origin "*"

                      Header add Access-Control-Allow-Headers "origin"

                      Header add Access-Control-Allow-Methods "PUT, GET, POST"*

                      Die Header-Direktive muss meines wissens innerhalb eines der Blöcke <Directory>, <Location>, <Files> oder <VirtualHost> stehen und wenn ein solcher in der httpd.conf vorkommt spricht das für eine monolithische Konfiguration des Apache und hätte andererseits zu einer Fehlermeldung beim Neustart des Apache geführt (du hast es hoffentlich auch in einem zum Request passenden Block gesetzt).

                      **XMLHttpRequest cannot load http://192.168.2.226/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://TEST.localdomain' is therefore not allowed access. **

                      Kannst du testweise mal Header set Access-Control-Allow-Origin "*" ausprobieren (ich habe zumindest Berichte gelsen, dass das angeblich helfen soll, auch wenn ich eigentlich nicht sehe warum) und die zwei weiteren Header (erstmal) weglassen?

                      Es wird also die Verbindung geöffnet aber keine Daten gesendet. Entsteht das immernoch durch die Rechtevergabe CORS oder ist mein Arduino nicht in der Lage die Daten zu analysieren?

                      Im Moment findet noch kein vollständiger Request statt, weil der Browser sich aufgrund der SOP immer noch verweigert.

                      Nachdem ich die Daten gesendet habe, verlange ich eine ResponseText.

                      var xhr= new XMLHttpRequest();
                      
                      xhr.open("GET","http://192.168.2.226",false);
                      
                      xhr.send(Daten);
                      
                      alert(xhr.responseText);**
                      

                      Diesen Meldung erhalte ich. Er ist zwar leer, aber er ist da.

                      Ich sehe, dass du XMLHttpRequest im synchronen Modus betreibst, was bedeutet, dass der Browser blockiert, bis der Request durch ist; das ist im ersten Moment etwas übersichtlicher (weil man sich nicht mit Asynchonität und Callbacks beschäftigen muss), aber meist nicht das gewünschte Verhalten.

                      Der Text ist leer, weil der Request nicht durchgeführt wird (s.o.). Welche Requests genau stattfinden, verraten dir übrigens auch die Developer Tools deines Browsers (Ctrl + Shift + i sollte die üblicherweise öffnen)

                      Ich freue mich über jede Hilfe...ich weiß leider nicht wo ich anpacken muss, oder sind meine Header totaler Müll?

                      Bisher scheinen die Header gar nicht zu greifen, falls die obige Idee nicht greifen sollte, wäre es hilfreich, wenn du mal deine komplette httpd.conf zeigen könntest und erwähntest welche Linux-Distri auf deinem RasPi läuft.

                      mfg
                      Woodfighter

                      1. Hallo zusammen!

                        # ======================================================================================
                        
                        # httpd.conf (ohne Pkt. vorneweg  ;) )
                        
                        
                        #
                        # This is the main Apache HTTP server configuration file.  It contains the
                        # configuration directives that give the server its instructions.....BLA BLA
                        
                        ServerRoot "c:/Apache24"
                        
                        
                        # ...BLA BLA   weiterführend nur das Aktive im Text
                        #
                        #Listen 12.34.56.78:80
                        Listen 192.168.2.88:80   #alt
                        #Listen 192.168.2.88:8888	#test mit arduino
                        
                        
                        #
                        # Dynamic Shared Object (DSO) Support
                        #
                        
                        LoadModule access_compat_module modules/mod_access_compat.so
                        #==========================================================================
                        #Allow from 192.168.2.1 192.168.2.255
                        #==========================================================================
                        LoadModule actions_module modules/mod_actions.so
                        LoadModule alias_module modules/mod_alias.so
                        LoadModule allowmethods_module modules/mod_allowmethods.so
                        LoadModule asis_module modules/mod_asis.so
                        LoadModule auth_basic_module modules/mod_auth_basic.so
                        
                        LoadModule authn_core_module modules/mod_authn_core.so
                        
                        
                        LoadModule authn_file_module modules/mod_authn_file.so
                        
                        LoadModule authz_core_module modules/mod_authz_core.so
                        
                        LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
                        LoadModule authz_host_module modules/mod_authz_host.so
                        
                        LoadModule authz_user_module modules/mod_authz_user.so
                        LoadModule autoindex_module modules/mod_autoindex.so
                        
                        LoadModule cgi_module modules/mod_cgi.so
                        
                        LoadModule dir_module modules/mod_dir.so
                        
                        LoadModule env_module modules/mod_env.so
                        
                        
                        LoadModule headers_module modules/mod_headers.so
                        
                        # <IfModule mod_setenvif.c>
                        
                        #    <IfModule mod_headers.c>
                         
                        #       SetEnvIf Origin "http://192.16.2.226/" IS_CORS
                        
                        #		Header set Access-Control-Allow-Origin "*" 
                         
                        #   </IfModule>
                        
                        # </IfModule>
                        
                        
                        
                        LoadModule include_module modules/mod_include.so
                        
                        LoadModule isapi_module modules/mod_isapi.so
                        
                        LoadModule log_config_module modules/mod_log_config.so
                        
                        LoadModule mime_module modules/mod_mime.so
                        
                        LoadModule negotiation_module modules/mod_negotiation.so
                        
                        LoadModule setenvif_module modules/mod_setenvif.so
                        
                        #
                        #For PHP 5 do something like this:
                        LoadModule php5_module "c:/PHP/php5apache2_4.dll"
                        AddType application/x-httpd-php .php
                        
                        
                        #
                        #configure the path to php.ini
                        PHPIniDir "C:/php"
                        
                        <IfModule unixd_module>
                        
                        User daemon
                        Group daemon
                        
                        </IfModule>
                        # 'Main' server configuration
                        
                        ServerAdmin admin@example.com
                        
                        
                        <Directory />
                            AllowOverride none
                            Require all denied
                        	
                        </Directory>
                        #DocumentRoot "C:/Windows/PHP"		
                        #Verzeichnis indem sich PHP befindet
                        
                        DocumentRoot "c:/MASTERARBEIT/pausensignal"
                        <Directory "c:/MASTERARBEIT/pausensignal">
                        	Options Indexes FollowSymLinks
                        	AllowOverride all
                        	Require all granted
                        </Directory>
                        
                        #
                        # Ordner der Passwortsicherung enthält
                        <Directory "c:/Apache24/protect">					
                        	AuthName "pausensignal"
                        	AuthType Basic
                        	AuthUserFile "C:/Apache24/protect/.htpasswd"
                        	require user Administrator
                        	AllowOverride All	
                        </Directory>
                        
                        
                        <IfModule dir_module>
                            DirectoryIndex index.php index.html
                        </IfModule>
                        
                        <Files ".ht*">
                            Require all denied
                        </Files>
                        
                        ErrorLog "logs/error.log"
                        LogLevel warn
                        
                        <IfModule log_config_module>
                            #
                            # The following directives define some format nicknames for use with
                            # a CustomLog directive (see below).
                            #
                            LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
                            LogFormat "%h %l %u %t \"%r\" %>s %b" common
                        
                          <IfModule logio_module>
                            # You need to enable mod_logio.c to use %I and %O
                            LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
                          </IfModule>
                        
                         
                        </IfModule>
                        
                        <IfModule alias_module>
                          
                        ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"
                        
                        </IfModule>
                        
                        <IfModule cgid_module>
                          
                        </IfModule>
                        
                        
                        <Directory "c:/Apache24/cgi-bin">
                            AllowOverride None
                            Options None
                            Require all granted
                        </Directory>
                        
                        <IfModule mime_module>
                           
                         TypesConfig conf/mime.types
                        
                           
                         AddType application/x-compress .Z
                         AddType application/x-gzip .gz .tgz
                        
                            
                         AddType application/x-httpd-php .php
                        </IfModule>
                        
                        
                        <IfModule proxy_html_module>
                        Include conf/extra/proxy-html.conf
                        </IfModule>
                        
                        <IfModule ssl_module>
                        SSLRandomSeed startup builtin
                        SSLRandomSeed connect builtin
                        </IfModule>
                        
                        
                        
                        # ===============================================================================
                        

                        Was ich auch probiert hab, es hat nix geholfen!!!! (hab nur dreimal geheult ;) )

                        Was man mit den Blöcken <Directory>, <Location>, <Files> oder <VirtualHost> macht erschließt sich mir ebenfalls nicht!!!! deshalb wie bei allen anderen <IfModul mod_xy>

                        Dann hab ich mir nochmal die Fehlermeldung angesehen und den Header des Arduinos...(nicht PasPi)

                        ## HTTP/1.1 200 OK\n
                        
                        ## Content-Type: text/html\n ... usw.
                        

                        ...mit

                        ## Access-Control-Allow-Origin: http://pausensignal.localdomain
                        

                        vervollständigt und siehe da... Es funktioniert.

                        Der Sinn erschließt sich mir jetzt dennoch nicht so richtig. Der Server hatte eigentlich nur die Aufgabe diese Fehlermeldung zu missachten. was ja wahrscheinlich auch geht, mit den richtigen Einstellungen.

                        Die Einstellungen sind aber eigentlich nur dafür da um Schwachstellen in die Ethernet-Kommunikation zu integrieren. Also gesetzt den Fall: mein anzusprechender Arduino ist ein weiterer Server ohne diese Einstellungen zum "umgehen der Sicherheitskriterien" würde die Kommunikation auch scheitern.

                        ...Aber dennoch würde mich interessieren wie diese Einstellung vollbracht werden kann!

                        Hochachtungsvollen Danke, der Bernd

                        1. Tach,

                          LoadModule headers_module modules/mod_headers.so
                          
                          # <IfModule mod_setenvif.c>
                          
                          #    <IfModule mod_headers.c>
                           
                          #       SetEnvIf Origin "http://192.16.2.226/" IS_CORS
                          
                          #		Header set Access-Control-Allow-Origin "*" 
                           
                          #   </IfModule>
                          
                          # </IfModule>
                          […]
                          LoadModule setenvif_module modules/mod_setenvif.so
                          

                          Im Moment stünde (wenn es nicht auskommentiert wäre) es innerhalb eines Blocks, der vom Modul setenvif abhängig ist; das Modul wird allerdings erst nach diesem Block geladen und deshalb wird es nicht aktiv.

                          Was ich auch probiert hab, es hat nix geholfen!!!!

                          „And all those exclamation marks, you notice? Five? A sure sign of someone who wears his underpants on his head.“ — Maskerade

                          Was man mit den Blöcken <Directory>, <Location>, <Files> oder <VirtualHost> macht erschließt sich mir ebenfalls nicht!!!!

                          Damit kann man Teile der Konfiguration nur für Teile der ausgelieferten Daten gültig machen, abhängig vom Verzeichnis auf dem Server, dem Pfad in der URI, des Dateinamens oder des Servernamens.

                          deshalb wie bei allen anderen <IfModul mod_xy>

                          IfModule ist da sinnvoll, wo man eine Konfiguration hat und die an mehreren Orten nutzen will, ohne sie anzupassen oder Konfigurationen von anderen Konfigurationsfiles abhängig machen will (das Laden von Modulen ist z.B. bei Debian-basierten Systemen in andere Dateien ausgelagert).

                          ## HTTP/1.1 200 OK\n
                          
                          ## Content-Type: text/html\n ... usw.
                          

                          ...mit

                          ## Access-Control-Allow-Origin: http://pausensignal.localdomain
                          

                          vervollständigt und siehe da... Es funktioniert.

                          Ja, das sollte natürlich auch funktionieren, wo der Header herkommt, kann der Browser nicht sehen; deswegen hatte ich mod_headers nur eine der möglichen Lösungen genannt.

                          mfg
                          Woodfighter