Struppi: XMLHTTP Objekt(IE) getAllResponseHeaders() - wann kommst du?

Hi,

ich bin grad ein bisschen mit AJAX am rumspielen und bin etwas verwirrt. Laut W3C soll der Header Verfügbar sein, wenn die readyState Eigenschaft den Wert 3 hat:

3 Receiving
Immediately before receiving the message body (if any). All HTTP headers have been received.

FF macht das auch so, der IE 7 sagt mir in seiner charmanten Art "unbekannter Fehler". Ist das wieder mal einer der Besonderheiten des IEs?

Struppi.

  1. Hi,

    ich bin grad ein bisschen mit AJAX am rumspielen und bin etwas verwirrt. Laut W3C soll der Header Verfügbar sein, wenn die readyState Eigenschaft den Wert 3 hat

    Was hat denn das W3C in Sachen AJAX zu melden?
    Die Technik und ihre Implementierungen existierten doch schon lange, bevor das W3C ueber eine Standardisierung nachzudenken angefangen hat.
    Sein "[t]his section is normative" kann sich das W3C bei allem Respekt vor Standards also mal dahin stecken, wo die Sonne nicht scheint ...

    3 Receiving
    Immediately before receiving the message body (if any). All HTTP headers have been received.

    Das laesst sich im Nachhinein schoen und einfach so definieren - aber wenn bereits abweichende Implementierungen existieren, haben wir da wohl ein kleines Problemchen ...

    FF macht das auch so, der IE 7 sagt mir in seiner charmanten Art "unbekannter Fehler". Ist das wieder mal einer der Besonderheiten des IEs?

    In der MSDN finde ich auf die Schnelle keinen entsprechenden Hinweis - aber es scheint wohl so zu sein.
    Nun ja, Pech gehabt - W3C. Wer zu spaet kommt, den bestraft die Realitaet.

    Wirst du wohl bis readyState==4 warten muessen, um an die Header ranzukommen.

    MfG ChrisB

    1. Nun ja, Pech gehabt - W3C. Wer zu spaet kommt, den bestraft die Realitaet.

      Deutliche Worte.

      Wirst du wohl bis readyState==4 warten muessen, um an die Header ranzukommen.

      So wird's sein.
      Ich spiele grad so nebenbei mit AJAX rum und wunderte mich, dass man überall in den Ajax Beispielen nur readyState == 4 findet, auch in manchen Bibliotheken nur onSucces oder onComplete, dürfte aber auch reichen.

      Struppi.

      1. Hi,

        Ich spiele grad so nebenbei mit AJAX rum und wunderte mich, dass man überall in den Ajax Beispielen nur readyState == 4 findet,

        Nun ja, wann waere eine Reaktion auf readyState 3 denn wirklich sinnvoll einsetzbar?
        I.a.R. will ich Content nachladen, und den verarbeite ich erst dann, wenn er vollstaendig geladen wurde.

        Gerade dein Beispiel macht aber die Reaktion auf readyState 3 u.U. sinnvoll - wenn ich danach die Response Header abfrage, entscheide ich mich ja vielleicht *gerade* auf Grund derer, dass ich den Content gar nicht haben, und deshalb lieber abort() aufrufen moechte, bevor mehrere MB an unbrauchbaren/sinnlosen Daten zu mir uebertragen wurden ... aber das waere wohl ein ziemlich rarer Sonderfall.

        auch in manchen Bibliotheken nur onSucces oder onComplete, dürfte aber auch reichen.

        Die wiederum sind mir noch nicht ueber'n Weg gelaufen - "funzen" die im Zusammenhang mit XMLHTTPRequest browseruebergreifend?
        Waere auch interessant, dann koennte man sich das wiederholte Abfragen des readyStates, bis dieser "endlich mal" 4 erreicht, sparen :-)

        MfG ChrisB

        1. Gerade dein Beispiel macht aber die Reaktion auf readyState 3 u.U. sinnvoll - wenn ich danach die Response Header abfrage, entscheide ich mich ja vielleicht *gerade* auf Grund derer, dass ich den Content gar nicht haben, und deshalb lieber abort() aufrufen moechte, bevor mehrere MB an unbrauchbaren/sinnlosen Daten zu mir uebertragen wurden ... aber das waere wohl ein ziemlich rarer Sonderfall.

          Naja, es gibt die Möglichkeit nur den Header abzuzfragen. request.open('HEAD', url);

          auch in manchen Bibliotheken nur onSucces oder onComplete, dürfte aber auch reichen.

          Die wiederum sind mir noch nicht ueber'n Weg gelaufen - "funzen" die im Zusammenhang mit XMLHTTPRequest browseruebergreifend?

          Das sind selbstdefinierte Events der Bibliotheken für readyState == 4

          Struppi.