Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Problemi con safari ios 5 ajax

    Ciao a tutti, sono nuovo ma seguo html.it da anni e anni come guide ecc.
    sono qui per porvi un problema inerente alla compatibilità di una mia applicazione su safari IOS 5.
    Sto piano piano scrivendo un webserver per il controllo remoto di un impianto domotico, il server è basato su vb.net mentre la parte client è in ajax. la comunicazione tra client- server è fatta con l'oggetto xmlhttprequest. su pc(chrome, explorer, opera, ecc) tutto funziona benissimo. su iphone, ipad, ipad2 ios 4.3.5 e minori funziona benissimo. su ipad2 ios 5.0.1 java gira xmlhttprequest comunica con il server con una get, il server risponde, lo status è a 4 ma il responsetext è vuoto.

    codice:
    function Send1(){
    	objHTTP = new XMLHttpRequest();
    	objHTTP.open("GET", "D_from_client", true);
    	objHTTP.onreadystatechange = function() {elaboraRisposta()}
    	objHTTP.send(null);
        setTimeout("Send1()" ,450);		
    }
    
    function elaboraRisposta() {
    	if (objHTTP.readyState == 4) { 
    		var St= objHTTP.responseText.split("#");
    		Counter= parseInt(St[0]);
                    ecc..
            }
    }
    Grazie Simone
    Simo

  2. #2
    Nessuno si è imbattuto in questo problema? sto impazzendo...
    Simo

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Hai provato ad inviare in POST? Per capire se un problema legato alla modalità d'invio.
    Poi se fossi in te opterei per chiamate ajax con jquery che soffre meno di incompatibilità
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    No in post non ho provato, anche perchè dovrei mettermi a riscrivere il server senno mi risponde 0 in status. il fatto è che al server la richiesta arriva, rispondo e di fatti lo status è a 200, il readyState è 4, ma sto maledetto testo è vuoto solo su sto motore. ho provato skyfire ma è identico. Ho preso in prestito un ipad da un amico con il 4.3.5 e funziona ma dal 5 in poi no...
    Simo

  5. #5
    jquery non lo conosco, e non saprei come metterci mani
    Simo

  6. #6
    Niente dopo 2 settimane di combattimenti sono ancora inchiodato qui! qualcuno puo darmi qualche dritta? anche migrare in jquery non so piu dove sbattere la testa!!!
    Simo

  7. #7
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Hai provato a spostare il setTimeout sotto elaboraRisposta()?


    codice:
    var objHTTP;
    
    function Send1(){
    	objHTTP = new XMLHttpRequest();
    	objHTTP.open("GET", "D_from_client", true);
    	objHTTP.onreadystatechange = function() {elaboraRisposta()}
    	objHTTP.send(null);
    }
    
    function elaboraRisposta() {
    	if (objHTTP.readyState == 4) {
    
        setTimeout(Send1, 450);		
    
    		var St= objHTTP.responseText.split("#");
    		Counter= parseInt(St[0]);
                    ecc..
            }
    }

  8. #8
    no in effetti non ho provato, stase provo al volo, nel frattempo sto cercando di farmi una cultura in jquery...
    per essere sicuro, la libreria la scarico prendo qui aggiornata giusto http://jquery.com/?
    Simo

  9. #9
    Ho modificato il codice con jquery in questo modo

    codice:
    function PosIMM (){
       
    /*	objHTTP = getXMLHttp();
    	objHTTP.open("GET", "P_from_client", true);
    	objHTTP.onreadystatechange = function() {elaboraPos()};
    	 
    	objHTTP.send(null);*/
        $.get("P_from_client",'',function (answer){
            elaboraPos(answer);
        } ); 	  
    		
    }
    
    function elaboraPos(answer) {
    
    //	if (objHTTP.readyState == 4) { 
    //		var St= objHTTP.responseText.split("#")
            var St= answer.split("#")
    		Counter= parseInt(St[0])
    		
    		//if (window.navigator.standalone) jQuery.ajaxSetup({isLocal:true});
    		
    		document.getElementById('Debug').value = 'Ciao' //answer
    		
    		for (i=1; i<Counter; i++){
    		
    ECC..
    ENTRA NELLA FUNZIONE "elaboraPos" ma "answer" è vuoto!!
    il server passa indietro i dati manulla

    maledetto Safari IOS 5.0.1!!!

    in piu la schifida consolle di debug di safari non rileva errori!
    Simo

  10. #10
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Piccola curiosità&hellip; ma la pagina che effettua la chiamata si trova in locale (file:///qualcosa/qualcosaltro) oppure in remoto (http://qualcosa/qualcosaltro)? Te lo chiedo perché i browser webkit hanno una politica strana sull'uso di ajax da locale. Se la pagina si trova in locale, prova a caricarla sul server e chiamarla da lì!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.