Asp.net 转发URL并在ASPX中仍然返回200而不是302
我希望这个页面返回200,同时仍然发送重定向Asp.net 转发URL并在ASPX中仍然返回200而不是302,asp.net,http,url,http-headers,http-status-code-302,Asp.net,Http,Url,Http Headers,Http Status Code 302,我希望这个页面返回200,同时仍然发送重定向 <script> sub page_load 'Get the parameters dim content As String content = request.querystring("text") response.redirect ("http://100.200.100.10/test1/Default.aspx?CommandParm=" + co
<script>
sub page_load
'Get the parameters
dim content As String
content = request.querystring("text")
response.redirect ("http://100.200.100.10/test1/Default.aspx?CommandParm=" + content)
end sub
</script>
<html>
<head>
</head>
<body>
<form runat="server">
</form>
</body>
</html>
子页面加载
'获取参数
将内容设置为字符串
content=request.querystring(“文本”)
response.redirect(“http://100.200.100.10/test1/Default.aspx?CommandParm=“+内容)
端接头
无法使用Response.Redirect()
。我想想看。可能在调用Redirect()
后设置Response.Status=“200 OK”
有效,我从未尝试过
您可以通过在一个空响应中手动设置“Location”标题来伪造它。不过,我不确定这有什么好处
(并且,作为记录:您将产生一个无效的HTTP头星座。不应该破坏任何东西,但仍然。)使用
Response.Redirect()。我想想看。可能在调用Redirect()
后设置Response.Status=“200 OK”
有效,我从未尝试过
您可以通过在一个空响应中手动设置“Location”标题来伪造它。不过,我不确定这有什么好处
(并且,作为记录:您将生成一个无效的HTTP头星座。不应该破坏任何内容,但仍然是。)您可以通过javascript重定向此页面
首先,通过生成以下字符串来创建动态javascript
<script type"text/javascript">
<!--
function redirect()
{
window.location = "http://100.200.100.10/test1/Default.aspx?CommandParm=" + content
}
//-->
</script>
当您浏览当前页面时,它将返回HTTP 200,启动onload事件后,浏览器将调用redirect(),您的浏览将在目标页面中
只是好奇你为什么需要这个 您可以通过javascript重定向此页面
首先,通过生成以下字符串来创建动态javascript
<script type"text/javascript">
<!--
function redirect()
{
window.location = "http://100.200.100.10/test1/Default.aspx?CommandParm=" + content
}
//-->
</script>
当您浏览当前页面时,它将返回HTTP 200,启动onload事件后,浏览器将调用redirect(),您的浏览将在目标页面中
只是好奇你为什么需要这个 无睑@
我同意这似乎是一个糟糕的可用性选择,但我希望这是一个无法直接解决的问题的解决办法
考虑到这一点,尝试一个,例如
并嵌入一条消息,解释登录此页面的不幸用户的情况
我可能在发帖时并没有解释我自己。这实际上是一个B2B交易。没有具有浏览器的最终用户。第三方发送HTTP GET。我们所要做的就是将其作为ligitimate事务转发
然后你应该发送一个301或302-这正是他们设计用来处理的目的。@@
我同意这似乎是一个糟糕的可用性选择,但我希望这是一个无法直接解决的问题的解决办法
考虑到这一点,尝试一个,例如
并嵌入一条消息,解释登录此页面的不幸用户的情况
我可能在发帖时并没有解释我自己。这实际上是一个B2B交易。没有具有浏览器的最终用户。第三方发送HTTP GET。我们所要做的就是将其作为ligitimate事务转发
然后你应该发送一个301或302-这正是他们设计用来处理的目的。你不能同时拥有它:重定向和状态200
关于:
10.2.1 200正常
请求已成功。随响应返回的信息取决于请求中使用的方法,例如:
- GET:响应中发送与请求的资源对应的实体李>
- 头:响应中发送与请求资源对应的实体头字段,不带任何消息体李>
- POST:描述或包含行为结果的实体李>
- 跟踪:包含终端服务器接收到的请求消息的实体
因此,除了发送一些由用户代理解释的内容(例如JavaScript)到浏览器之外,没有重定向的空间
在说明使用状态代码301、302或303重定向的规范中:
10.3.2 301永久移动
已为请求的资源分配了一个新的永久URI,将来对此资源的任何引用都应使用其中一个返回的URI。具有链接编辑功能的客户端应尽可能自动将对请求URI的引用重新链接到服务器返回的一个或多个新引用。除非另有说明,否则此响应是可缓存的
新的永久URI应该由响应中的Location字段提供。除非请求方法是HEAD,否则响应的实体应该包含一个简短的超文本注释,并带有指向新URI的超链接
如果收到301状态代码以响应GET或HEAD以外的请求,则除非用户能够确认,否则用户代理不得自动重定向请求,因为这可能会改变发出请求的条件
注意:当收到301状态代码后自动重定向POST请求时,一些现有HTTP/1.0用户代理会错误地将其更改为GET请求
10.3.3 302已找到
请求的资源临时驻留在不同的URI下。由于重定向有时可能会被更改,因此客户端应该继续使用请求URI来处理将来的请求。只有在缓存控件或Expires标头字段指示时,此响应才可缓存
临时URI应该由响应中的Location字段提供。除非请求方法是HEAD,否则响应的实体应该包含一个简短的超文本注释,并带有指向新URI的超链接
如果收到302状态代码以响应请求
mybody.Attributes.Add("onload", "redirect()");
<meta http-equiv="refresh" content="5;url=http://example.com/"/>