Response.Redirect... Fehlermeldung
Markus
- asp.net
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
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
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
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
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!!