Elektronik2000.de Forum
» E2000 - PLUS - Software
» E2000 - PLUS - Software allgemein
Abfrage von Zuständen via xmlhttp(ajax)
Seiten (1): [1]  
Autor Beitrag
 
yannick9906
Abfrage von Zuständen via xmlhttp(ajax)
Hallo,

ich habe heute(bzw. gestern) versucht mittle AJAX die Zustände von Modulen abzufragen. Dabei hab ich mich an die Befehle gehalten, die ihr im Profibereich stehen habt. Jedoch bekomme ich bei ausführen der Befehle diesen Fehler:

Code:
1
XMLHttpRequest cannot load http://192.168.2.38/admin.html?action=control&update=yes&1440028509868. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63343' is therefore not allowed access.

HTML-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        var xmlhttp = null;
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        }
        else if (window.ActiveXObject) {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.withCredentials = true;
        xmlhttp.open("GET", 'http://192.168.2.38/?action=login&mini=1&username=admin&password=______' + new Date().getTime(), true); //Login
        xmlhttp.send(null);
        xmlhttp.open("GET", 'http://192.168.2.38/admin.html?action=control&update=yes&' + new Date().getTime(), true); //Get Update
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                ShowData(xmlhttp.responseText); //process and show Data
                setTimeout('getHttpRequest();', 50);
            }
            else if (xmlhttp.readState == 4) {
                setTimeout('getHttpRequest();', 1000);
            }
        }
        xmlhttp.send(null);


Der Befehl um den Login zu machen ist erfolgreich gewesen. Ich habe mich zu dem Fehler mal durchgelesen und habe herausgefunden, dass er auftritt wenn von einer anderen Domain diese Abfrage kommt(Cross-Domain-Ajax). Man müsste also auf der MCU den 'Access-Control-Allow-Origin' header so einstellen, dass localhost zugelassen wird.(localhost ist in dem Fall der PC auf der die Seite ist.) Sobald man Google Chrome mit --disable-web-security startet. Funktionieren die Befehle auch einwandfrei.
Ich will die aber auch abfragen können ohne immer Google Chrome so starten zu müssen.
Mich würde es interessieren, ob ihr sowas anders macht, oder ob es möglich ist eine Option im Webinterface zu machen wo man diese Header einstellen kann.

Viele Grüße
Yannick
yannick9906 ist offline  
Seiten (1): [1]  
 
Suche
» Erweiterte Suche
Optionen
Druckansicht Druckansicht
Thema weiterempfehlen Thema weiterempfehlen