Salve a tutti! Sono Stefano.
Ho una rete locale nella quale ho un Server, altri computer e il mio computer.
Ho bisogno di effettuare richieste HTTP GET al Server, che mi dovrebbe rispondere con una pagina di XML o JSON. Il mio problema è che se io da Browser (Chrome e Internet Explorer) apro "pc67c:8080/?cmd=readmachinetext" il server mi risponde correttamente mostrandomi la mia pagina di tag XML:
2013-10-22_091111.jpg
Allora io pensavo di fare una richiesta di questo tipo:
Che semplicemente alla pressione di un bottone fa la richiesta al Server, pesca le variabili XML dalla risposta e le mette nei campi di input corrispondenti. Sono sicuro della correttezza del codice perché puntando una pagina XML con le stesse variabili nella root dove ho salvato questa pagina, quindi in locale, funziona correttamente. Se invece, come nell'esempio, punto il mio server non ottengo risposta e la funzione cade in errore "Request: failure".codice:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Richiesta di variabili XML</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript"> // Accepts a url and a callback function to run. function requestX() { // Indirizzo pagina var url = "http://cosmopanelz:8080/?cmd=readmachinetext"; var request = $.ajax({ url: url, datatype: "xml", type: "GET" }); request.done(function (xmlData) { window.alert("got it!"); Elem = document.getElementsByClassName("setpoint"); for (I = 0; I < Elem.length; I++) { document.getElementsByName(Elem[I].name)[0].value = $(xmlData).find(Elem[I].name).text(); } }); request.fail(function (jqXHR, textStatus) { alert("Request failed: " + textStatus); }); } </script> </head> <body> <input type="button" value="Vai!" onclick="requestX()" /> <br /><br /> <span>MAS197b030 </span><input type="text" class="setpoint" name="MAS197b030"/> <br /><br /> <span>MAS197b056 </span><input type="text" class="setpoint" name="MAS197b056"/> <br /><br /> <span>MAS197b078 </span><input type="text" class="setpoint" name="MAS197b078"/> <br /><br /> <span>MAS197b209 </span><input type="text" class="setpoint" name="MAS197b209"/> <br /><br /> <span>MAS197b223 </span><input type="text" class="setpoint" name="MAS197b223"/> <br /><br /> </body> </html>
Sniffando sul Server ho tirato fuori le richieste che gli arrivano, nel caso vengano fatte con il Browser:
o nel caso vengano fatte con la mia funzione:codice:2013/10/14 13:58:14 dato arrivato: 2013/10/14 13:58:14 GET /?cmd=readmachinetext HTTP/1.1 Host: pc67c:8080 Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36 Accept-Encoding: gzip,deflate,sdch Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4 If-Modified-Since: Fri, 11 Oct 2013 18:48:47 GMT GET HTTP/1.0 200 OK Date: Mon, 14 Oct 2013 13:58:14 GMT Server: Server MIME-version: 1.0 Content-type: text/plain Last-modified: Mon, 14 Oct 2013 13:58:14 GMT Connection: keep-alive Content-length: 20745
Questo è quanto. Qualcuno sa dirmi perchè col browser ottengo risposta e con la richiesta fatta dalla mia funzione non ottengo risposta?codice:2013/10/14 14:09:14 dato arrivato: 2013/10/14 14:09:14 GET /?cmd=readmachinetext HTTP/1.1 Host: pc67c:8080 Connection: keep-alive Origin: http://localhost:58751 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36 Accept: */* Referer: http://localhost:58751/ Accept-Encoding: gzip,deflate,sdch Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4 If-Modified-Since: Mon, 14 Oct 2013 13:58:14 GMT GET HTTP/1.0 200 OK Date: Mon, 14 Oct 2013 14:09:14 GMT Server: Server MIME-version: 1.0 Content-type: text/plain Last-modified: Mon, 14 Oct 2013 14:09:14 GMT Connection: keep-alive Content-length: 20745
Grazie a tutti per la collaborazione! Spero di aver dato abbastanza elementi.

Rispondi quotando