Я унаследовал классический ASP-сайт, на котором возникла странная проблема. В верхней части страницы его перенаправление на https для безопасного соединения. Код:
<%
Response.Buffer = True
' Redirect to SSL if needed:
servername=Request.ServerVariables("SERVER_NAME")
scriptname=Request.ServerVariables("SCRIPT_NAME")
serverport=Request.ServerVariables("SERVER_PORT")
if serverport="80" and (InStr(servername, "192.168.1.") = 0 and servername <> "localhost") then
Response.Redirect "https://www.theurl.com" & scriptname & "?package=" + Request.QueryString("package")
else
'response.Write("Development testing")
end if
%>
Этот код находится вверху файла. Ничто не до этого. Когда я открываю браузер и загружаю страницу, я старею:
Response object error 'ASP 0156 : 80004005'
The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
Нет перенаправления. Если я перезагружаю страницу или ухожу и возвращаюсь после ошибки, все работает нормально, пока я не закрою браузер и не открою его снова.
Если это в верхней части файла, как заголовки уже могут быть записаны?
Обновление: Полный исходный код, предоставленный источником просмотра IE8:
<font face="Arial" size=2>
<p>Response object</font> <font face="Arial" size=2>error 'ASP 0156 : 80004005'</font>
<p>
<font face="Arial" size=2>Header Error</font>
<p>
<font face="Arial" size=2>/path/file.asp</font><font face="Arial" size=2>, line 10</font>
<p>
<font face="Arial" size=2>The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
</font>
Да, место до