Avatar billede searchjob Nybegynder
23. marts 2007 - 17:24 Der er 11 kommentarer

ajax virker ikke i ie 6

hvad går de galt her?? det virker fint i firefox og ie 7, men den udskriver intet når jeg prøver at alerte "httpRequest2" ?? why??

  function __loadab1(url) {
 
        var httpRequest2;

        if (window.XMLHttpRequest) {
            httpRequest2 = new XMLHttpRequest();
            if (httpRequest2.overrideMimeType) {
                httpRequest2.overrideMimeType('text/xml');
               
            }
        } else if (window.ActiveXObject) { // IE
            try {
                httpRequest2 = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    httpRequest2 = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!httpRequest2) {
            return false;
        }
       
        httpRequest2.onreadystatechange = function(){ new tjekincoming1(httpRequest2); };
        httpRequest2.open('GET', url, true);
        httpRequest2.send(null);

    }
    function tjekincoming1(httpRequest2) {

        if (httpRequest2.readyState == 4) {
            if (httpRequest2.status == 200) {
                if ( httpRequest2.responseText == 0) { location.href='datafejl.php?type=1'; return false;}
            } else {
                return false;
            }
        }

    }
Avatar billede kongfjong Nybegynder
23. marts 2007 - 18:02 #1
Prøv at bruge den her måde at lave obejktet på:

function getHTTPObject() {

  var xmlhttp;

  /*@cc_on

  @if (@_jscript_version >= 5)

    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }

  @else

  xmlhttp = false;

  @end @*/

  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {

    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }

  if (!xmlhttp && window.createRequest) {
    try {
        xmlhttp = window.createRequest();
    } catch (e) {
        xmlhttp=false;
    }
  }

    return xmlhttp;
}

var http = getHTTPObject(); // We create the HTTP Object
Avatar billede kongfjong Nybegynder
23. marts 2007 - 18:04 #2
httpRequest2.onreadystatechange = function(){ new tjekincoming1(httpRequest2); };

Prøv i øvrigt også at udskifte ovenstående med:

httpRequest2.onreadystatechange = tjekincoming1;
Avatar billede kongfjong Nybegynder
23. marts 2007 - 18:06 #3
Og sidst men ikke mindst, så har jeg oplevet problemer med responseText i IE6, hvor jeg blev nødt til at bruge responseXML og så selvfølgelig sørge for, at det output du får tilbage fra din url i "httpRequest2.open('GET', url, true);" er XML:)
Avatar billede searchjob Nybegynder
23. marts 2007 - 19:02 #4
nu har jeg indsat den funktion du siger.. gider du så ikke få funktionen til at virke med det jeg har givet som ekspempel i spørgsmålet??? så vil ejg blive rigtig glad!!
Avatar billede kongfjong Nybegynder
23. marts 2007 - 20:06 #5
prøv at bruge følgende:

function startTjekIncoming()
{
  http.open("GET", 'url', true);
  http.onreadystatechange = tjekincoming1;
  http.send(null);
}

function tjekincoming1()
{
  if (http.readyState == 4) {
            if (http.status == 200) {
                if (http.responseXML0) { location.href='datafejl.php?type=1'; return false;}
            } else {
                return false;
            }
        }
}
Avatar billede searchjob Nybegynder
25. marts 2007 - 17:00 #6
hvorfor virer dette ikke??

  function __page(url) {
    /*@cc_on

  @if (@_jscript_version >= 5)

    try {
      httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        httpRequest = false;
      }
    }

  @else

  httpRequest = false;

  @end @*/

  if (!httpRequest && typeof XMLHttpRequest != 'undefined') {

    try {
      httpRequest = new XMLHttpRequest();
    } catch (e) {
      httpRequest = false;
    }
  }

  if (!httpRequest && window.createRequest) {
    try {
        httpRequest = window.createRequest();
    } catch (e) {
        httpRequest=false;
    }
  }

        httpRequest.onreadystatechange = function() { new alertContents(httpRequest); };
        httpRequest.open('GET', url, true);
        httpRequest.send(null);

    }







får denne fejl:

Fejl: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: xxxxx :: alertContents :: line 298"  data: no]
Kildefil: xxx
Linje: 298
Avatar billede kongfjong Nybegynder
25. marts 2007 - 19:04 #7
hvad er linje 298?
Avatar billede searchjob Nybegynder
25. marts 2007 - 20:12 #8
function alertContents(httpRequest) {if (httpRequest.readyState == 4) {if (httpRequest.status == 200) {new HandleData(httpRequest.responseText);} else {new ErrorMessage('Fejl ved indlæsning af filer.');return false;}}}
Avatar billede searchjob Nybegynder
25. marts 2007 - 20:14 #9
og den melder fejl med denne på linje 199:
Fejl: uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIXMLHttpRequest.send]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: xxxx :: __page :: line 199"  data: no]

og linje 199 er:
httpRequest.send(null);
Avatar billede olebole Juniormester
26. marts 2007 - 13:17 #10
<ole>

Hvordan kan det være, du opretter et nyt objekt på onreadystatechange - uanset status af requestens readyState? Prøv noget:

httpRequest.onreadystatechange = function() { alert(httpRequest.status+"\n"+httpRequest.readyState) };

/mvh
</bole>
Avatar billede kongfjong Nybegynder
13. oktober 2009 - 21:44 #11
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester