首页 新闻 会员 周边 捐助

“无法在发送 HTTP 标头之后进行重定向”?

0
悬赏园豆:40 [已解决问题] 解决于 2019-12-28 09:33

用get方法传值的时候碰到这样一个问题,程序运行之后弹出这样一个错误,无法在发送 HTTP 标头之后进行重定向,希望大家能够帮忙解决一下问题,代码如下:
Response.Clear();
string url;
url = "Handler1.ashx?agf=aa";
Response.Redirect(url);

起风了123的主页 起风了123 | 初学一级 | 园豆:84
提问于:2019-05-17 10:09
< >
分享
最佳答案
0

如果你要让客户端重定向,那么你可以在响应的HTTP报文头部中设置响应报文字段Location:xxx.com。
你看看这段代码执行之前,是不是已经给客户端发送过响应头了(一般都是这样)。
你可以这样理解:你要么只响应给客户端重定向,要么就只响应给客户端其他格式的数据。但不要有其他响应的同时还要客户端重定向。

收获园豆:40
寻觅beyond | 小虾三级 |园豆:923 | 2019-05-18 22:59
其他回答(1)
0

http协议中重定向就是写到头部的;意思该理解了吧

花飘水流兮 | 园豆:13617 (专家六级) | 2019-05-17 11:09

额,不理解啊,能说的再清楚一点吗,谢谢了

支持(0) 反对(0) 起风了123 | 园豆:84 (初学一级) | 2019-05-17 11:22

@起风了123:
这是服务器端完整的 http 通讯 包

HTTP/1.1 200 OK
Date: Fri, 17 May 2019 04:44:29 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive

1
0
0

如果包已经进行到了keep-alive换行,你还能写Head部分吗?明白?不明白用Tcp写一下试试看,如果 非要可以,那么这个服务器的写法会不一样 —— 这种方案服务器容易挂,在包没有完整的情况下不写到socket缓冲区。你如果前面没代码,看看Response Clear是不是刷socket缓冲区了,结合tcp知识就明白了。

支持(0) 反对(0) 花飘水流兮 | 园豆:13617 (专家六级) | 2019-05-17 12:50

@花飘水流兮: 我这个是写再在button控件的点击事件里的,你说的东西我不是很能理解,但非常感谢你

支持(0) 反对(0) 起风了123 | 园豆:84 (初学一级) | 2019-05-17 15:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册