Permalänk
Medlem

nu fattar jag inget om jag skriver koden som står nedan så får jag svar sama svar som jag får när jag läger den lokalt på adrino men i fallet nedan så skriver den inte ut svaret där den ska stå på websidan. kan någon för klara det? och hur löser man det då?

function GetArduinoIO() { nocache = "&nocache=" + Math.random() * 1000000; var request = new XMLHttpRequest(); request.onreadystatechange = function() { if (this.readyState == 4) { if (this.status == 200) { if (this.responseXML != null) { // XML file received - contains analog values, switch values and LED states var count; // get analog inputs var num_an = this.responseXML.getElementsByTagName('analog').length; for (count = 0; count < num_an; count++) { document.getElementsByClassName("analog")[count].innerHTML = this.responseXML.getElementsByTagName('analog')[count].childNodes[0].nodeValue; } // get switch inputs var num_an = this.responseXML.getElementsByTagName('switch').length; for (count = 0; count < num_an; count++) { document.getElementsByClassName("switches")[count].innerHTML = this.responseXML.getElementsByTagName('switch')[count].childNodes[0].nodeValue; } // LED 1 if (this.responseXML.getElementsByTagName('LED')[0].childNodes[0].nodeValue === "checked") { document.LED_form.LED1.checked = true; } else { document.LED_form.LED1.checked = false; } // LED 2 if (this.responseXML.getElementsByTagName('LED')[1].childNodes[0].nodeValue === "checked") { document.LED_form.LED2.checked = true; } else { document.LED_form.LED2.checked = false; } // LED 3 if (this.responseXML.getElementsByTagName('LED')[2].childNodes[0].nodeValue === "on") { document.getElementById("LED3").innerHTML = "LED 3 is ON (D8)"; LED3_state = 1; } else { document.getElementById("LED3").innerHTML = "LED 3 is OFF (D8)"; LED3_state = 0; } // LED 4 if (this.responseXML.getElementsByTagName('LED')[3].childNodes[0].nodeValue === "on") { document.getElementById("LED4").innerHTML = "LED 4 is ON (D9)"; LED4_state = 1; } else { document.getElementById("LED4").innerHTML = "LED 4 is OFF (D9)"; LED4_state = 0; } } } } } // send HTTP GET request with LEDs to switch on/off if any request.open("GET", "http://192.168.1.252/ajax_inputs" + strLED1 + strLED2 + strLED3 + strLED4 + nocache, true); request.send(null); setTimeout('GetArduinoIO()', 1000); strLED1 = ""; strLED2 = ""; strLED3 = ""; strLED4 = ""; }

skinaden i texten är
request.open("GET", "http://192.168.1.252/ajax_inputs" + strLED1 + strLED2 + strLED3 + strLED4 + nocache, true);
och när den är lokalt
request.open("GET", "ajax_inputs" + strLED1 + strLED2 + strLED3 + strLED4 + nocache, true);
själv klart så ser sidan ut lika för utom raden som jag skrev här över

Permalänk
Medlem

Jättekonstigt. Vad säger consolen? Får du något felmeddelande?
Ser du hur långt du kommer? Ex kan du ju kolla på Network fliken om anropen görs...

Permalänk
Medlem

i consolen ser de ut som det ska. stäer en fråga och får svar från adrino men av någon anledning så kommer det inte ut på sidan.inga fel medlande. går som den ska frågar en gång i sekunden får olika svar från adrino i consolen men inget på sidan.
här en fråga

Begär URL:http://192.168.1.252/ajax_inputs&nocache=224729.0444214707 Förfrågningsmetod:GET Fjärradress:192.168.1.252:80 Statuskod: 200 Version:HTTP/1.1 Referreringspolicy:no-referrer-when-downgrade Svarets rubriker (67 B) Råa rubriker Connection keep-alive Content-Type text/xml Begär rubriker (352 B) Råa rubriker Accept */* Accept-Encoding gzip, deflate Accept-Language sv-SE,sv;q=0.8,en-US;q=0.5,en;q=0.3 Connection keep-alive Host 192.168.1.252 Origin http://varme.jost.nu Referer http://varme.jost.nu/ User-Agent Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/72.0

här kommer svaret

<?xml version = "1.0" ?><inputs><analog>436</analog> <analog>451</analog> <analog>475</analog> <analog>417</analog> <switch>ON</switch> <switch>OFF</switch> <switch>OFF</switch> <LED>unchecked</LED> <LED>unchecked</LED> <LED>off</LED> <LED>off</LED> </inputs>

Permalänk
Medlem

efter lite mer fel sökning så blir svaret på rad
if (this.status == 200) {
inte 200 utan 0
kan någon förklara vad denna rad gör?
det som stör mig är att jag ser svaret i konsolen
tips om vad som har gått snet mottages gärna

Permalänk
Vila i frid
Skrivet av jost1:

efter lite mer fel sökning så blir svaret på rad
if (this.status == 200) {
inte 200 utan 0
kan någon förklara vad denna rad gör?

True eller False, dvs icke-noll och noll. Om this.status inte är 200 returneras False dvs noll.

Permalänk
Medlem

Jadu, vet inte varför det dummar sig. Man skall få svar 200, vilket betyder "OK"
https://sv.wikipedia.org/wiki/Lista_%C3%B6ver_HTTP-statuskode...
Frågan är om din arduino skickar helt korrekta headers?
Eller så struntar man i att man inte får 200... Det är ju din server, så om du svarar ok eller inte är ju upp till dig.
Om du får readystate==4 så har du fått ett svar, så det är ju det som är det viktiga.

Permalänk
Medlem
Skrivet av HWarc:

Jadu, vet inte varför det dummar sig. Man skall få svar 200, vilket betyder "OK"
https://sv.wikipedia.org/wiki/Lista_%C3%B6ver_HTTP-statuskode...
Frågan är om din arduino skickar helt korrekta headers?
Eller så struntar man i att man inte får 200... Det är ju din server, så om du svarar ok eller inte är ju upp till dig.
Om du får readystate==4 så har du fått ett svar, så det är ju det som är det viktiga.

200, 202, 204 finns många som betyder ’OK’ så tänk på vad som är rimligt

Skickades från m.sweclockers.com