• 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点可以解释。

  • 相关阅读:
    postgresql 简单入门
    自用 docker-compose
    前后端分离 开发环境通过CORS实现跨域联调
    导出 java.io.IOException: 权限不够
    mysql 数值与字符类型 长度梳理
    easyui input未设id导致的问题
    springmvc处理url请求步骤
    js中的变量提升(hoisting)
    auto semicolon insertion 自动分号补齐的坑
    $.ajax dataType设置为json 回调函数不执行
  • 原文地址:https://www.cnblogs.com/buguge/p/6891084.html
Copyright © 2020-2023  润新知