Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Elbrinner

Alternativa ao response.redirect

Recommended Posts

Tenho a mania de redirecionar tudo quando envio o registro porem o meu servidor não suporta isso, da o seguinte erro:Response object error 'ASP 0156 : 80004005' Header Error The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content. Exister alguma alternativa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todo servidor que rodaasp suporta response.redirect.Isso é um erro que ocorre porque há saída no cache do navegador e esse método (redirect) requer que o cabeçalho estwejavazio.Para resolver, use o response.redirect antes ta tag html da página.Outra alternativa seria usar javascript, mas acredito que não seja necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se uso apenas o redirect na primeira linha eu nao tenho problema mais o que passa é que uso sempre quando envio uma consulta sql. tipo:if request.form("oculto")= "sim" thenINTRO2 = "INSERT INTO MPcomentario (texto,data,usuario,id_col) VALUES ('" &quebralinha(formataSQL(texto))& "','" &data& "','" & usuario & "','" & idCOL & "') "Conn.Execute(INTRO2)Response.Cookies("meupais")("nome") = Request.form("nome")Response.Redirect "default.asp?id="&IDCOL&" "end ifAntes quando usava a locaweb eu nao tinha esse problemas sempre me funciona os redirect mais com o novo servidor nao...obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz assim:<script LANGUAGE="JavaScript"><!--function atualiza(){alert("Coluna adicionada com sucesso!");document.location.href = "logado1.asp?campo=2"}setTimeout("atualiza()",1000);//--></SCRIPT><%Response.Redirect "logado1.asp?campo=2"%> Caso não funciona o redirect vai funciona o javascript, certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

funfa... após o timeout do JS, né.. se naum funcionar o asp... mas pra garantir, adicione..<%on error resume nextResponse.Redirect "logado1.asp?campo=2"%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem também um problema no seu servidor, pois eles estão com o cache desabilitado. O que acontece: Ao enviar dados ao browser o servidor não poderia redirecionar, pois o browser teria dados "perdidos". O IIS possui um sistema de cache, todo seu "Response.Write" é armazenado antes de ser enviado ao browser para que o servidor interprete todo o Script e se por ventura seja nescessário redirecionar ele faz, sem problemas. O que você pode fazer é "ligar" esse buffer usando o "Response.Buffer = true" logo após a definição da linguagem e assi funcionará com certeza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.