zoukankan      html  css  js  c++  java
  • Request.UrlReferrer注意点

    定义:

    public sealed class HttpRequest
    {
            //
            // 摘要: 
            //     获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL。
            //
            // 返回结果: 
            //     一个 System.Uri 对象。
            //
            // 异常: 
            //   System.UriFormatException:
            //     HTTP Referer 请求标头格式不正确,并且不能被转换为 System.Uri 对象。
            public Uri UrlReferrer { get; }
    }

     注意方法注释中的“客户端”。

    在使用Request.UrlReferrer时要注意: 

    1.如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值 
    2.如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则 Request.UrlReferrer返回空。因为 在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息 
    3.点击刷新按钮不会改变Request.UrlReferrer

    其中,关于第2点,在Page_Load里方法里执行跳转,因为回发给浏览器的是跳转的目标页(原页面并无回发),所以取不到Request.UrlReferrer。已亲测。

    我今天遇到的问题是,上游三方系统调用我的接口a1.ashx,从a1.ashx的ProcessRequest方法里执行Response.Redirect方法跳转到站内的a2.ashx,结果在a2里获取Request.UrlReferrer.Host得到的是上游三方系统的域名。 可见,用上面的第2点可以解释。

  • 相关阅读:
    java实现邮件定时发送
    hql 语法与详细解释
    hql 跟 sql 区别
    HQL: Hibernate查询语言
    hibernate 中createQuery与createSQLQuery两者区别
    SSO(Single Sign On)
    32位随机数
    Android广播机制简介
    c#获取枚举
    Editable DataGrid 实现列表新增编辑功能
  • 原文地址:https://www.cnblogs.com/buguge/p/6891084.html
Copyright © 2011-2022 走看看