- LiFePO4 Speicher Test         
Ergebnis 1 bis 3 von 3

Thema: XMLHttpRequest(javascript) problem mit response

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    31
    Beiträge
    540

    XMLHttpRequest(javascript) problem mit response

    Anzeige

    LiFePo4 Akku selber bauen - Video
    hallo,

    ich habe einen avr-webserver, auf dem ethersex läuft. nachdem ich den zum laufen bekommen habe, möchte ich nun die seite für die portsteuerung programmieren. dafür benutze ich javascript. das schalten der ports funktioniert wunderbar, hier mal meine funktion, die argumente sind der pin und 1 für an und 0 für aus:
    Code:
    function request(pin,status) {
    var request = new XMLHttpRequest();
    request.open('get','http://192.168.2.120/ecmd?pin set '+pin+' '+status, true);
    request.send(null);
    Test.Ausgabe.value = request.responseText;
    }
    wie ihr seht will ich aber auch den response anzeigen. der webserver antwortet mit einem http-header (200 OK) und dem wort on oder off, also kein html oder xml. dieses wort möchte ich in der textbox Ausgabe in der form Test anzeigen. dazu soll die letzte codezeile dienen. allerdings kommt bei mir nichts heraus.
    ich bin ganz neu bei javascript und habe mir die sachen nur für die seite angeguckt, vielleicht gibt es hier ja jemanden, der sich da besser auskennt und schon mit ethersex gearbeitet hat?

    bin für jeden tipp dankbar!

    mfg roboman

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hi,

    normalerweise geschieht der XMLHttpRequest-Aufruf doch asynchron, d.H. wenn man gleich nach dem Absenden sein Ergebnis abfrägt, wird da noch nix drin stehen.
    Dazu gibt man vorher eine callback-function mit, die aufgerufen wird, wenn die Abfrage fertig ist.

    siehe Beispiel ganz unten:
    http://www.webmasterpro.de/coding/ar...st-objekt.html

    Und, sind das da Leerzeichen ? Die sollte man vorher rausnehmen, oder durch ein '+' ersetzen, denn Leerezeichen gibts in der URL nicht, und ich weiss nicht (glaub nicht), ob die evtl. automatisch umgewandelt werden, in XMLHttpRequest.

    HTH

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    31
    Beiträge
    540
    ok, ich habe den code jetzt so geändert wie auf der website. er sieht jetzt so aus:
    Code:
    function request(pin,status) {
    var request = new XMLHttpRequest();
    
    request.open('get','http://192.168.2.120/ecmd?pin set+'+pin+'+'+status, true);
    request.onreadystatechange = handleStateChange;
    request.send(null);
    Test.Ausgabe.value = request.responseText;
    }
    
    function handleStateChange()
    {
    alert("xmlHttpObject.readyState = " + xmlHttpObject.readyState + (xmlHttpObject.readyState >= 3 ? " HTTP-Status = " + xmlHttpObject.status : ''));
    }
    allerdings ändert das nicht, es erscheint auch keine meldung, wie es eigendlich sein sollte. ich habe auch das beispiel von der website probiert, da klappt es.

    was mir aufgefallen ist: der response der beispielwebsite ist:
    Code:
    HTTP/1.1 200 OK
    
    Date: Mon, 12 Apr 2010 22:20:37 GMT
    
    Server: Apache
    
    Vary: Cookie
    
    Keep-Alive: timeout=2, max=58
    
    Connection: Keep-Alive
    
    Transfer-Encoding: chunked
    
    Content-Type: text/html; charset=utf-8

    der response meines webservers ist:
    Code:
    HTTP/1.1 200 OK
    
    Connection: close
    
    Cache-Control: no-cache, must-revalidate
    
    Content-Type: text/plain; charset=utf-8
    kann es sein, dass die funktion in meinem response was vermisst und deswegen nichts ausgibt?

    mfg roboman

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress