关于response.redirect的问题

myleehom 2003-08-21 09:37:29
同样的代码在两台不同的机器上运行,为什么只有一台提示response.redirect出错:“HTTP 头已经写入到 客户浏览器。任何 HTTP 头的修改必须在写入页内容之前。”另一台运行完全正确。
请高手不吝赐教,在线等!
...全文
49 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
myleehom 2003-08-22
  • 打赏
  • 举报
回复
win98的系统什么不行??说详细点好吗?
lang11zi 2003-08-22
  • 打赏
  • 举报
回复
ridirect必须在任何html内容被传送到浏览器之前被调用
diya 2003-08-22
  • 打赏
  • 举报
回复
在页面顶部加入<%response.buffer=true%>
ttt2 2003-08-21
  • 打赏
  • 举报
回复
看操作系统如果是98肯定不行
window的iis默认buffer是打的
maxid 2003-08-21
  • 打赏
  • 举报
回复
对就是用js的window.location.href来代替Response.Redirect
Response.Write "<script language=""javascript"">" & _
vbCrLf & "self.location='<%=Linkpage%>';" & _ '这里少了个 "& _"
vbCrLf & "</script>"
加上去应该行了~
myleehom 2003-08-21
  • 打赏
  • 举报
回复
To maxid:

上面的代码是用来替换Response.Redirect strRet吗?怎么替换后,报错呢?具体怎么改,请赐教!
maxid 2003-08-21
  • 打赏
  • 举报
回复
用Response.Redirect不好用,以后就用这个代码来代替会省去很多麻烦
Response.Write "<script language=""javascript"">" & _
vbCrLf & "self.location='<%=Linkpage%>';"
vbCrLf & "</script>"
jiejifeng 2003-08-21
  • 打赏
  • 举报
回复
应该是  输出 而不是  输入。

说了是IIS设置有些不同, 更何况ASP常会有不少奇怪的错误,像我上回在本地和一台服务器上正常的程序,在另一台上却不行,重装服务器后才正常
myleehom 2003-08-21
  • 打赏
  • 举报
回复
代码如下:

<!--#include File="../../../inc/ass.asp"-->
<%
Dim strRet
'---------------取得文件ID------------------------------------------------

Dim strFilename,strNewName,strPath,filename
Dim lngSlave
lngSlave=Session("upslaveno")
Dim Dt1,createtimey,createtimem,createtimed,strCreatetime,filebt,filelei,lngFileid
Dt1=Now()
createtimey=year(Dt1)
createtimem=month(Dt1)
createtimed=day(Dt1)
filebt=Trim(Request("filebt"))
filelei=Trim(Request("filelei"))
strCreatetime=createtimey& "-" & createtimem & "-" &createtimed
conn.CursorLocation=adUseClient
Set cmd=Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=conn
cmd.CommandType=adCmdStoredProc
cmd.CommandText="sp_give_file_inbt"
With cmd.Parameters
.Append cmd.CreateParameter("ReturnCode",adInteger,adParamReturnValue)
.Append cmd.CreateParameter("username_1",adVarChar,adParamInput,50,session("username"))
.Append cmd.CreateParameter("deptname_2",adVarChar,adParamInput,50,session("userdeptname"))
.Append cmd.CreateParameter("unitname_3",adVarChar,adParamInput,50,session("userunitname"))
.Append cmd.CreateParameter("givetime_4",adDBTimeStamp,adParamInput,,strCreatetime)
.Append cmd.CreateParameter("isread_5",adInteger,adParamInput,,0)
.Append cmd.CreateParameter("filelei_6",adVarChar,adParamInput,50,filelei)
.Append cmd.CreateParameter("filebt_7",adVarChar,adParamInput,200,filebt)
.Append cmd.CreateParameter("fileidx",adInteger,adParamOutput)
End With
cmd.Execute
Dim intRt
intRt=cmd("ReturnCode")
If intRt=0 Then
lngFileid=cmd("fileidx")
End If
Session("uploadfileid")=lngFileid
conn.Close
Set conn=Nothing
response.write lngFileid
strRet="accept_daddslave.asp?upok=你已成功写入文件基本信息,请上传文件!"
Response.Redirect strRet
%>


出错的就是最后那句“Response.Redirect strRet”
jiejifeng 2003-08-21
  • 打赏
  • 举报
回复
应该是 输出 而不是输入
myleehom 2003-08-21
  • 打赏
  • 举报
回复
那为什么在另外一台机器运行完全正常呢?
xupiao 2003-08-21
  • 打赏
  • 举报
回复
这个 response.redirect 出错是因为 你前面已经有 输入了

我認這個說的最簡單明了
jiejifeng 2003-08-21
  • 打赏
  • 举报
回复
这个 response.redirect 出错是因为 你前面已经有 输入了
myleehom 2003-08-21
  • 打赏
  • 举报
回复
除了两台机器的IP不同外,其它都相同的。
xmsunny 2003-08-21
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2107/2107173.xml?temp=.4209253
xmsunny 2003-08-21
  • 打赏
  • 举报
回复
在网页前边加上<%response.buffer=true%>打开缓存


因为如果你已经向客户端浏览器发送内容以后就不能再设置head了也不能用response.redirect进行转向。
如果你知道原理的话就很清楚。
response.redirect就是通过给客户端一个头部信息来实现的。
就像php中的
.header()

jiejifeng 2003-08-21
  • 打赏
  • 举报
回复
IIS设置不一样

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧