Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [AJAX] status pari a 0 in Chrome

    Ciao ragazzi,

    ho questo semplice script AJAX per effettuare un banale login:

    codice:
    function asyncRequest() {
    	request = obtainXMLHttpRequest();
    	var useLink = true;
    	
    	if( request ) {
    		useLink = false;
    		var username = document.getElementById("username").value;
    		var password = document.getElementById("password").value;
    		
    		request.open("post", "core.php", true);
    		request.setRequestHeader("content-type", "application/x-www-form-urlencoded");
    		request.setRequestHeader("connection", "close");		
    		
    		request.onreadystatechange = function() {
    			alert("readyState: " + request.readyState);
    			alert("status: " + request.status);	
    			
          		if(request.readyState == 4) {
    				
            		if(request.status == 200) {
    					alert(request.responseText);
    					
    					if(request.responseText == "GO") {
    						window.location.replace("main.php");
    					}
    					
    				} else {
    					//...
            		}
          		}
        	}
    		
        	
    		var append = "&";
        	request.send( "username=" + escape(username) + append + 
    					"password=" + escape(password) + append + 
    					"login=" + escape("") );
    	}
    	
    	return useLink;
    }
    
    function obtainXMLHttpRequest() {
    			var
    				XHR = null,
    				browserUtente = navigator.userAgent.toUpperCase();
    			if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
    				XHR = new XMLHttpRequest();
    			else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
    				if(browserUtente.indexOf("MSIE 5") < 0)
    					XHR = new ActiveXObject("Msxml2.XMLHTTP");
    				else
    					XHR = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			return XHR;
    }
    non capisco perchè non funziona in Google Chrome vers. 23 (in altri browser funziona); ottengo readyState = 4, ma status = 0.

    Spero che qualcuno mi saprà dare spiegazioni.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Potrebbe essere per questa riga:
    request.setRequestHeader("connection", "close");
    toglila, oltretutto non serve a nulla

    P.S. Se fai solo questo in js come non detto, altrimenti valuta di passa ad jquery che oltre a fare molto di più non ha problemi compatibilità
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Originariamente inviato da cavicchiandrea
    Potrebbe essere per questa riga:
    request.setRequestHeader("connection", "close");
    toglila, oltretutto non serve a nulla

    P.S. Se fai solo questo in js come non detto, altrimenti valuta di passa ad jquery che oltre a fare molto di più non ha problemi compatibilità
    Grazie per la risposta.

    Ho fatto diversi test, ma non va.
    Inoltre, ho notato che se voglio modificare lo style object di alcuni elementi le modifiche permangono solo fino all'esecuzione della funzione assegnata a onreadystatechange, una volta terminata viene riapplicato il css originale.

    Forse sbaglio approccio..

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Probabile, lo script è parecchio datato (fa un controllo IE 4/5) cerca in rete qualcosa di più recente oppure passa ad jquery
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.