https和http 调用过程中请求头 referrer 获取不到的问题

HTTP协议规定:

  1. Clients SHOULD NOT include a Referer header field in a (non-secure) HTTP request if the referring page was transferred with a secure protocol.

解决办法:

1、表单添加一个字段referrer,如果头部没有Referer,则获取表单的这个字段,

添加js:

  1. <input id="referrer" type="hidden" name="referrer" />
  2. <script type="text/javascript">
  3. document.getElementById("referrer").value = window.location.href
  4. </script>

2、后台:

  1. string urlReferrer = "";
  2. if (Request.UrlReferrer == null)
  3. {
  4. urlReferrer = Request["referrer"];
  5. }
  6. else
  7. {
  8. urlReferrer = Request.UrlReferrer.AbsoluteUri;
  9. }

来自为知笔记(Wiz)

时间: 2024-07-29 12:14:56

https和http 调用过程中请求头 referrer 获取不到的问题的相关文章

函数递归调用过程中的调用堆栈的情况

为了加深对函数递归调用过程中的理解,本Demo程序特意在VS2008 C#控制台程序实现了阶乘的计算功能,用于观察函数递归调用过程中的调用堆栈的情况. 源码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace RecursiveTset { class Program { //阶乘的定义:n!=n*(n-1)!,特别的,1!=1:0!=1 //阶乘的实

Android Java 与 C++ 调用过程中的常量,路径名、文件名、后缀名最大长度

/**************************************************************************** **************************************************************************** *** ***   This header was automatically generated from a Linux kernel header ***   of the same

app在android 6.0或以上平台版本运行过程中请求权限

原文作者:Google 原文地址:http://developer.android.com/intl/zh-cn/training/permissions/requesting.html 原文版权:Creative Commons 2.5 Attribution License 译文作者:Jianan - [email protected] 版本信息:本文基于2016-04-27版本翻译 译文版权:CC BY-NC-ND 4.0,允许复制转载,但必须保留译文作者署名及译文链接,不得演绎和用于商业

变量和方法调用过程中会出现的参数传递

变量对于基本数据类型来说变量名和值同时存储于栈内存里面的一块空间之中 对于引用类型来说则是栈内存里面的变量指向堆里面的实际对象,在栈中的变量来说变量名和指向对象的地址存在同一块内存里面. 方法的参数和基本类型变量都是存储于栈中的 对于方法来说进入方法开辟空间,方法执行完退出则回收内存,很明显方法中的参数,变量的作用域问题 方法的参数又包括基本类型和引用类型,对于两种不同的参数来说在参数的传递过程中是基本类型的值被copy后传进去也即是值传递, 而引用类型来说传递的是引用也就是他的地址,从某方面来

扩展jQuery的方法统一处理AJAX调用过程中产生的异常错误信息

由于项目中大量的实用了.post方法,而该方法默认不对请求的异常进行处理,后期又要处理该问题.前期的解决方案是将使用.post请求都改造为$.ajax请求,但由于两个方法的实现(需要的参数)等相差很大,修改起来很麻烦! 期间尝试使用定义"AJAX 请求发生错误时执行函数($(document).ajaxError())" 的方式来解决问题,但影响范围太大,长轮询发生的错误也被捕获,导致页面一打开就弹出系统异常的对话框. 所以这里采用扩展jQuery的方法的技术来解决问题: /* 扩展j

解决https 请求过程中SSL问题

最近一个项目中用到了https的请求,在实际调用过程中发现之前的http方法不支持https,调用一直报错. 查询了一下,添加几行代码解决问题. public string HttpPost(string Url, string postDataStr, string useragent = null)        {            ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, s

Ajax请求过程中显示“进度”的简单实现

Ajax在Web应用中使用得越来越频繁.在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求):调用完成后,图片消失,当前页面运行重新编辑.以下图为例,页面中通过一个Load链接以Ajax请求的方式加载数据(左).当用户点击该链接之后,Ajax请求开始,GIF图片显示“Loading“状态,同时当前页面被“罩住”防止用户继续点击Load按钮(中):Ajax请求

HTTPS理论基础及其在Android中的最佳实践

我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险.为了解决这个问题,Netscape 公司制定了HTTPS协议,HTTPS可以将数据加密传输,也就是传输的是密文,即便黑客在传输过程中拦截到数据也无法破译,这就保证了网络通信的安全. 密码学基础 在正式讲解HTTPS协议之前,我们首先要知道一些密码学的知识. 明文: 明文指的是未被加密过的原始数据. 密文:明文被某种加密算法加密之后,会变成密文,从

dubbo系列三、架构介绍及调用过程解析

一.整体设计 图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口. 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config 层为 API,其它各层均为 SPI(可扩展). 图中绿色小块的为扩展接口,蓝色小块为实现类,图中只显示用于关联各层的实现类. 图中蓝色虚线为初始化过程,即启动时组装链,红色实线为方法调用过程,即运行时调用链,紫色