Request.UrlReferrer 在页面刷新时为空

Posted

技术标签:

【中文标题】Request.UrlReferrer 在页面刷新时为空【英文标题】:Request.UrlReferrer is coming as null on page refresh 【发布时间】:2017-01-13 10:07:19 【问题描述】:

谁能告诉我刷新请求的页面值时如何修改代码。 UrlReferrer 为空。实际上它正在引发异常。我必须处理这个异常。有人知道吗?

【问题讨论】:

抛出异常对象引用未设置为对象实例。我必须处理此异常。 modifiy the code - 第 37 行? 异常通常用try/catch处理——第37行? 只有当用户通过上一页的链接到达当前页时,URL Referrer 才会返回一个值。否则,document.referrer 返回一个空字符串。如果您已从安全站点访问该页面,则 url 引荐来源网址也会返回一个空字符串。要解决这个问题,请设置一个变量并在您到达该页面时使用它。 ServerVariables("SCRIPT_NAME") 用于页面,ServerVariables("QUERY_STRING") 用于发送的参数。 我怎样才能把这个放在 try catch 块中?? 【参考方案1】:

UrlReferrer 无法由您的服务器端代码控制 - 它只是公开浏览器/客户端与请求一起发送的值。有很多情况下 value 不存在(初始请求/刷新、HTTP/HTTPS 转换),因此您的代码必须能够处理这种情况。

至少您只需要检查null(如果您需要以一种很好的方式处理来自流氓客户端的请求,您可能还需要处理UriFormatException):

  if (Request.UrlReferrer != null)
  
       // run your code that deals with referrer
  

【讨论】:

感谢您的解决方案。但在我的情况下,它发生在我尝试刷新页面并显示空值时。检查 Request.UrlReferrer != null 将完成工作??我试过了甚至您给出的解决方案及其工作,但我不确定它会对其余代码产生什么影响。有什么建议吗?? Referrer 可能为空。完全由您决定如何在您的站点中处理该案例。

以上是关于Request.UrlReferrer 在页面刷新时为空的主要内容,如果未能解决你的问题,请参考以下文章

Request.UrlReferrer没有给出预期的结果

2017-06-29在登录页面自动返回上次请求页面Js获取table中的行数与列数

Request.UrlReferrer详解

Request.UrlReferrer

请问asp.net 怎么实现登陆后跳转登录前的页面

asp.net使用session完成: 从哪个页面进入登录页面,登录成功还回到那个页面