Ankündigung

Einklappen
Keine Ankündigung bisher.

XMLHttpRequest funktionieren in Safari und Chrome nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • XMLHttpRequest funktionieren in Safari und Chrome nicht

    Ich habe ein Problem mit einem XMLHttpRequest in Javascript. In Firefox und IE funktioniert dieser Wunderbar, aber in Chrome und Safari nicht.
    Leider bracht mir Google keine brauchbaren Lösungen.

    Hier das Script:
    Code:
    //Global
    var req_fwurl;
    var req_button;
    
    
    function func1(){
    	
    	var fw_id=document.forms.fwdw.elements.url.value;
    	document.getElementById("button").innerHTML='Der Download öffnet sich in einem neuem Fenster...';
    	window.open('/wp-content/plugins/xyz/download.php?id='+fw_id);
    }
    
    function func2(){
    
    	document.getElementById("button").innerHTML='Wird geladen...';
    
    	if(document.forms.fwdw.list.options[0].value=="select"){
    		document.forms.fwdw.list.options[0]=null;
    	}
    	
    
    	var fwid=document.forms.fwdw.list.options[document.forms.fwdw.list.selectedIndex].value;
    	
    	req_button=GetXmlHttpObject();
    	if (req_button==null)
    	  {
    	  alert ("Dein Browser unterstützt keine HTML-Anfragen..");
    	  return;
    	  }
    	var url="/wp-content/plugins/xyz/ajax-button.php";
    	url=url+"?url="+fwid;
    	url=url+"&sid="+Math.random();
    	req_button.onreadystatechange=stateChanged2;
    	req_button.open("GET",url,true);
    	req_button.send(null);
    }
    
    //Submit-Button anzeigen , AJAX antwort
    function stateChanged2(){
    	if (req_button.readyState==4){
    			document.getElementById("button").innerHTML=req_button.responseText;
    		}
    }
    
    //Funktion Ger�t aktualisiert-->
    function change_device(){
    	//Firmware zur�cksetzen, Button entfernen
    	document.getElementById("list").innerHTML='Wird geladen...';
    	document.getElementById("button").innerHTML=null;
    	
    	//Wenn Bitte w�hlen, Element l�schen
    	if(document.forms.fwdw.device.options[0].value=="select"){
    		document.forms.fwdw.device.options[0]=null;
    	}
    	
    	//Ausgew�hltes Device ermitteln
    	var device=document.forms.fwdw.device.options[document.forms.fwdw.device.selectedIndex].value;
    	
    	//AJAX-Request(Firmware-Auswahl)
    	req_fwurl=GetXmlHttpObject();
    	if (req_fwurl==null)
    	  {
    	  alert ("Dein Browser unterstützt keine HTML-Anfragen. Bitte kontaktiere den BENM.AT Support.");
    	  return;
    	  }
    	var url="/wp-content/plugins/xyz/ajax-url.php";
    	url=url+"?device="+device;
    	url=url+"&sid="+Math.random();
    	req_fwurl.onreadystatechange=stateChanged;
    	req_fwurl.open("GET",url,true);
    	req_fwurl.send(null);
    	
    }
    
    //Firmware Feld aktualisieren, Formular anzeigen , AJAX antwort
    function stateChanged(){
    	if (req_fwurl.readyState==4){
    			document.getElementById("list").innerHTML=req_fwurl.responseText;
    		}
    }
    
    	
    function GetXmlHttpObject()
    {
    	if (window.XMLHttpRequest)
    	  {
    	  // code for IE7+, Firefox, Chrome, Opera, Safari
    	  return new XMLHttpRequest();
    	  }
    	if (window.ActiveXObject)
    	  {
    	  // code for IE6, IE5
    	  return new ActiveXObject("Microsoft.XMLHTTP");
    	  }
    	return null;
    }
    Kann mir jemand helfen, warum funktioniert der HttpRequest in Chrome und Safari nicht?


  • #2
    „Funzt nich“ ist keine brauchbare Problembeschreibung.

    Kommentar


    • #3
      Zitat von ChrisB Beitrag anzeigen
      „Funzt nich“ ist keine brauchbare Problembeschreibung.
      Also, in Safari, Chrome wird die Http Abfrage nicht gemacht, in den anderen Browsern(IE, Firefox) funktioniert dies.

      Kommentar


      • #4
        Zitat von mattla93 Beitrag anzeigen
        Also, in Safari, Chrome wird die Http Abfrage nicht gemacht
        Und dass es daran liegt, dass gar keine Abfrage „gemacht“ wird, hast du wie herausgefunden?

        Was sagen die JS-Fehlerkonsolen?

        Kommentar


        • #5
          Zitat von ChrisB Beitrag anzeigen
          Und dass es daran liegt, dass gar keine Abfrage „gemacht“ wird, hast du wie herausgefunden?

          Was sagen die JS-Fehlerkonsolen?
          JS Fehlerkonsole in Chrome:
          Code:
          XHR finished loading: "http://.........downloader/ajax-url.php?device=4&sid=0.657889723777771".

          Kommentar


          • #6
            Zitat von mattla93 Beitrag anzeigen
            JS Fehlerkonsole in Chrome:
            Code:
            XHR finished loading: ...
            Aus einer Meldung, die den (wohl erfolgreichen) Abschluss des Requests protokolliert, ziehst du den Schluss, dass gar keiner gemacht worden wäre ...?


            Hast du mal geprüft, ob die Funktion, die du als readyState-Handler angegeben hast, aufgerufen wird?

            Probiere ggf. mal, die Reihenfolge von deren Zuweisung und dem open des Requests zu tauschen - wenn ich mich recht erinnere, sind manche Browser was das angeht etwas wählerisch.

            Kommentar


            • #7
              Hast du mal geprüft, ob die Funktion, die du als readyState-Handler angegeben hast, aufgerufen wird?
              Wenn das die stateChanged sind, ja, da hab ich einen Alert ausgegen, dert wird ausgeführt.

              Probiere ggf. mal, die Reihenfolge von deren Zuweisung und dem open des Requests zu tauschen - wenn ich mich recht erinnere, sind manche Browser was das angeht etwas wählerisch.
              Habe die StateChanged und die GetXmlHttpObject() ober den anderen Funktionen untergebracht in der .js - Datei.
              Leider ohne Erfolg.

              Kommentar


              • #8
                Zitat von mattla93 Beitrag anzeigen
                Wenn das die stateChanged sind, ja, da hab ich einen Alert ausgegen, dert wird ausgeführt.
                Also funktioniert es bis dahin offenbar noch einwandfrei.

                Findest du nicht, dass es dann langsam mal Zeit wird, dass du statt „funzt nich“ mal eine brauchbare Problembeschreibung lieferst - woher sollen wir sonst wissen, was jetzt eigentlich das Problem ist ...?

                Kommentar


                • #9
                  Zitat von ChrisB Beitrag anzeigen
                  Also funktioniert es bis dahin offenbar noch einwandfrei.

                  Findest du nicht, dass es dann langsam mal Zeit wird, dass du statt „funzt nich“ mal eine brauchbare Problembeschreibung lieferst - woher sollen wir sonst wissen, was jetzt eigentlich das Problem ist ...?
                  Leider kann ich als Problembeschreibung nicht mehr als folgendes Angeben, dass bei Safari und Chrome nur ein leerer String zurückgeben.

                  Firefox und IE machen ja alles korrekt, so wie es sein sollte.

                  Kommentar

                  Lädt...
                  X