2010-09-10 2 views
3

Pourquoi IE ne me laisse pas voir l'en-tête Content-Length avec getResponseHeader()?getResponseHeader de XMLhttpRequest d'IE ("Content-Length") absent lorsque Content-Encoded envoyé

Je sais que les en-têtes sont en cours d'envoi; Je peux les voir avec Wireshark. IE ne me laissera pas les avoir.

Si l'en-tête Content-Encoding n'est PAS envoyé, indépendamment du fait que le contenu soit gzippé ou non, je peux les obtenir très bien.

Exemple de code:

function getXMLHttpRequest() { 
     if (window.XMLHttpRequest) { 
      return new window.XMLHttpRequest; 
     } 
     else { 
      try { 
       return new ActiveXObject("MSXML2.XMLHTTP.3.0"); 
      } 
      catch (ex) { 
       return null; 
      } 
     } 
    } 
    function handler() { 
     if (oReq.readyState == 4 /* complete */) { 
      if (oReq.status == 200) { 
       // this alert will be missing Content-Length 
       // and Content-Encoding if Content-Encoding is sent. 
       alert(oReq.getAllResponseHeaders()); 
      } 
     } 
    } 

    var oReq = getXMLHttpRequest(); 

    if (oReq != null) { 
     oReq.open("GET", "http://www.example.com/gzipped/content.js", true); 
     oReq.onreadystatechange = handler; 
     oReq.send(); 
    } 
    else { 
     window.alert("AJAX (XMLHTTP) not supported."); 
    } 
+0

Avez-vous déjà obtenu une réponse à cette question? Je vois la même chose - fonctionne très bien dans Chrome mais pas dans IE. –

+0

Non, je n'ai jamais trouvé de solution. –

Répondre