“重新加载此页面”与刷新地址栏

时间:2018-05-16 18:53:59

标签: asp.net

我正在开发一个asp.net网络应用程序。我的一个网页从远程服务器收到了一个发布值: HiddenField1.Value = Request.Form.Get("something")

此外,我正在使用javascript来操作此HiddenField1中的值。

奇怪的是,如果我点击任何浏览器上的“重新加载此页面”图标: reload page icon

页面重新加载,HiddenField的值在那里

但是如果我将鼠标移动到地址区并点击了网址, address area example url字符串的背景变为蓝色,然后按Enter键,看起来页面的行为完全相同:重新加载。然而,HiddenField的价值已经消失。

任何暗示这两种情况之间有什么区别?

1 个答案:

答案 0 :(得分:0)

这与ASP.Net并不严格相关:它实际上是一种常见的浏览器行为,您可能会遇到不同的服务器语言(php,python或其他)。

在第二种情况下,浏览器会向服务器发送一个新的(GET)请求,询问最后加载的URL。如果您只是从空白地址区域开始输入地址,那将是相同的。

在第一种情况下,您告诉您的浏览器"请重复您上次提出的请求"。也许是一个POST请求将数据(表单字段)发送到服务器,服务器确实回答了插入您注意到的隐藏字段的上一个请求。

总结一下,第二种情况是"发送此地址的GET请求,忽略其他所有内容"。第一个是"重复你发送的最后一个请求。如果是带有表单数据的POST请求,请按照"

之前的时间再次发送

很可能在您的情况下,服务器代码仅在特定POST请求的情况下(可能根据发布的数据)插入隐藏字段,而不是GET请求

如果您不知道HTTP请求的POST和GET之间的区别,this answer可能会有所帮助