Markus: Response.Redirect... Fehlermeldung

Hi Leute

Führe eine Weiterleitung mit response.redirect im <head> bereich aus:

Bekomme dann Folgende Fehlermedlung:

Antwortobjekt- Fehler 'ASP 0156 : 80004005'

Header-Fehler

eintrag.asp, line 26

Die HTTP-Header sind bereits in den Client Browser geschrieben. Änderungen am HTTP-Header müssen vorgenommen werden, bevor der Seiteninhalt geschrieben wird.

wie ist das zu verstehen??

in der Zeile 26 steht:

Response.Redirect "test.asp"

bzw was mache ich falsch?

MFG
Markus

  1. Halihallo Markus

    Führe eine Weiterleitung mit response.redirect im <head> bereich aus:

    Weiterleitungen stehen im HTTP-Header, nicht im HTML-head. Das ist ein grosser
    Unterschied.

    Die HTTP-Header sind bereits in den Client Browser geschrieben. Änderungen am HTTP-Header müssen vorgenommen werden, bevor der Seiteninhalt geschrieben wird.
    wie ist das zu verstehen??

    Tja, der HTTP-Header wurde bereits zum Client versendet, also kann kein Redirect mehr
    stattfinden. Du musst die untenstehende Zeile ganz an den Anfang des Scriptes setzen,
    aber mindestens vor der ersten Ausgabe.

    Response.Redirect "test.asp"

    HTTP-Header "Location" erwartet eine _komplette_ URL!

    Viele Grüsse

    Philipp

    --
    RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
    Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
    1. Hi hab mir aber folgendes ASP Beispiel angeschaut und dort steht auch sowas nur wo es eingebunden wird weiß ich nicht:

      http://www.aspheute.com/artikel/20000522.htm

      Weiterleitungen stehen im HTTP-Header, nicht im HTML-head. Das ist ein grosser
      Unterschied.

      Die HTTP-Header sind bereits in den Client Browser geschrieben. Änderungen am HTTP-Header müssen vorgenommen werden, bevor der Seiteninhalt geschrieben wird.
      wie ist das zu verstehen??

      Tja, der HTTP-Header wurde bereits zum Client versendet, also kann kein Redirect mehr
      stattfinden. Du musst die untenstehende Zeile ganz an den Anfang des Scriptes setzen,
      aber mindestens vor der ersten Ausgabe.

      Response.Redirect "test.asp"

      Wie meinst du das?:

      HTTP-Header "Location" erwartet eine _komplette_ URL!

      ?

      MFG
      Markus

      1. Halihallo Markus

        Hi hab mir aber folgendes ASP Beispiel angeschaut und dort steht auch sowas nur wo es eingebunden wird weiß ich nicht:

        Wie ich sagte: Bevor etwas anderes ausgegeben wurde, also bevor du irgend etwas anderes
        über Response.Write ausgibst.

        HTTP-Header "Location" erwartet eine _komplette_ URL!
        ?

        Der folgende HTTP-Header ist nicht korrekt:

        Content-Type: text/html
        Location: test.asp

        Er müsste heissen:

        Content-Type: text/html
        Location: http://www.deine-domain.de/test.asp

        folglich:

        Response.Redirect("http://www.deine-domain.de/test.asp")

        eben: eine vollständige URL. Könnte sein, dass ASP dies automatisch korrigiert, ich
        habe keine Testmöglichkeit und weiss es nicht.

        Viele Grüsse

        Philipp

        --
        RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
        Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
        1. Response.Redirect muß immer VOR einer Html ausgebe stehen!

          Also zb:

          <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
          <%Response.Redirect "test.asp"%>
          <html>
          <head>
          <title>Unbenanntes Dokument</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          </head>

          <body>

          </body>
          </html>

          oder

          <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

          <% if request.querystring("id")=1 then %>
          <html>
          <head>
          <title>Unbenanntes Dokument</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          </head>

          <body>

          </body>
          </html>
          <%
          else
          Response.Redirect "test.asp"
          %>

          beim 2. fall wird wenn du deiner testseite den query id=1 mitgibst ( also: test0.asp?id=1) das html angezeigt wenn du die query nicht mitgibts oder was anderes als 1 dann wird auf test.asp verwiesen.

          der volle pfad ist beim Response.Redirect nicht nötig!!