IE无法设置短域名下Cookie

在经过一番简单排查之后找到了问题所在,Cookie设置失败。

但至于为什么会失败,这个问题查了半天,最后在StackOverflow上面有人提到了,IE从5.0开始就无法为短域名下设置Cookie。

那么多短才会出现问题呢?经过试验,发现包含点号在内一共5个字符以内包括5个字符都无法通过Javascript设置Cookie,不过这里有个前提,就是只有当你设置Cookie时显式指定了domain参数才会失败。也就是说如果你这么写:

查看源代码打印帮助document.cookie="key=value;domain=ab.cn";

Cookie设置会失败,如果去掉domain参数,直接这样写:

查看源代码打印帮助document.cookie="key=value";

则不会出现这样的问题,即便当前域依然是ab.cn。

这篇文章http://support.microsoft.com/kb/310676/en-us/提到了类似的问题,不过貌似和这个情况不大一样。大家也可以参考一下。

因为Cookie设置失败,导致我们的流量监测系统认为每个访问都是一次新的访问,自然跳出率就极高了,而GA貌似Cookie设置失败就不发数据了。

Firefox和Chrome没有这样的问题。

Mark一下,希望对遇到类似问题的人有帮助。

(0)

相关推荐

  • php生成短域名函数

    php生成短域名函数 public function createRandCode($string) { $code = ''; $hex_code = '1qaz2wsx3edc4rfv5t-gb6yhn7ujm8ik9ol0p_'; $now = microtime(true) * 10000; $strlen = strlen($hex_code); $hash_code = hash('sha256', $string); // 这里会为编码定义一个随机的长度,长度取决于step $st

  • 利用PHP实现短域名互转

    复制代码 代码如下: /**  * 短域名生成&解析类  */ class Build_URL { private $mem;     private $base_url = 'http://xxx.com/'; public function  __construct() {         $mem_conf    = array(                 array(                         'host'    => '192.168.10.90',  

  • php短域名转换为实际域名函数

    复制代码 代码如下: $url = "http://sinaurl.cn/hbdsU5"; echo unshorten($url); function unshorten($url) { $url = trim($url); $headers = get_headers($url); $location = $url; $short = false; foreach($headers as $head) { if($head=="HTTP/1.1 302 Found&quo

  • IE无法设置短域名下Cookie

    在经过一番简单排查之后找到了问题所在,Cookie设置失败. 但至于为什么会失败,这个问题查了半天,最后在StackOverflow上面有人提到了,IE从5.0开始就无法为短域名下设置Cookie. 那么多短才会出现问题呢?经过试验,发现包含点号在内一共5个字符以内包括5个字符都无法通过Javascript设置Cookie,不过这里有个前提,就是只有当你设置Cookie时显式指定了domain参数才会失败.也就是说如果你这么写: 查看源代码打印帮助document.cookie="key=val

  • 关于Iframe如何跨域访问Cookie和Session的解决方法

    最近做登录系统的整合,其中遇到的一个最关键的问题为在一个统一的后台里需要无障碍的访问另外一个系统后台,这个系统是第三方提供的一个加过密的系统,后台自动登录接口是自己分析出来的,没有单独提供,当从统一后台通过自动登录接口登录时,系统直接跳转到系统后台首页,后台登录成功后所跳转的URL这里没法指定,控制不了跳转的页面,如果在统一后台里需要链接到这个系统后台的另外一个页面,而非后台默认首页时,也就是将第三方系统后台的菜单功能放到我们这个统一后台里. 对于这样的一个需要,这里会遇到一个问题,为了能正常访

  • Ajax跨域请求COOKIE无法带上的完美解决办法

    1.原生ajax请求方式: 1 var xhr = new XMLHttpRequest(); 2 xhr.open("POST", "http://xxxx.com/demo/b/index.php", true); 3 xhr.withCredentials = true; //支持跨域发送cookies 4 xhr.send(); 2.jquery的ajax的post方法请求: $.ajax({ type: "POST", url: &qu

  • Ajax跨域访问Cookie丢失问题的解决方法

    ajax跨域访问,可以使用jsonp方法或设置Access-Control-Allow-Origin实现,关于设置Access-Control-Allow-Origin实现跨域访问可以参考之前我写的文章<ajax 设置Access-Control-Allow-Origin实现跨域访问> 1.ajax跨域访问,cookie丢失 首先创建两个测试域名 a.fdipzone.com 作为客户端域名 b.fdipzone.com 作为服务端域名 测试代码 setcookie.PHP 用于设置服务端co

  • JavaScript 处理Iframe自适应高度(同或不同域名下)

    1.同域名下Iframe自适应高度的处理 复制代码 代码如下: <iframe onload="Javascript:SetIFrameHeight(this)" src="../Home/b" id="win" name="win" width="100%" height="1"> </iframe> 当然此处我用的是Asp.Net MVC 此处src设置为路由

  • Vue项目如何设置反向代理和cookie设置问题

    目录 Vue设置反向代理和cookie设置 项目场景 问题描述 原因分析 解决方案 Vue项目使用js-cookie细则 什么是js-cookie 在项目中进行安装 在项目中的入口文件(main.js)全局引入 在项目中使用 Vue设置反向代理和cookie设置 项目场景 最近使用Vue开发一个新的项目,因为服务器还没到,调取后端本地接口,因为请求接口的时候没有跨域,就没开反向代理.后面就被一个很基础的东西踩了坑,就是 cookie的一些知识,记录一下,加深一下印象. 问题描述 联调过程中,发现

  • sso跨域写cookie的一段js脚本(推荐)

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script> var setcookitarray = ""; setcookitarray = "[\"http://passport.a.com/main/setCookie.do?domain=\",\"http://passport.

  • ie7下利用ajax跨域盗取cookie的解决办法

    研究了一下午,第一个难题是ajax跨域提交数据,可以用web代理来解决,http://192.168.8.108上的a.htm代码: <script> function getXmlHttpRequest(){ if(window.ActiveXObject){ var ieArr=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"]; for(var i=0;i<ieArr.length;i++) { var xmlhtt

  • 解决前后端分离 vue+springboot 跨域 session+cookie失效问题

    环境: 前端 vue ip地址:192.168.1.205 后端 springboot2.0 ip地址:192.168.1.217 主要开发后端. 问题: 首先登陆成功时将用户存在session中,后续请求在将用户从session中取出检查.后续请求取出的用户都为null. 解决过程: 首先发现sessionID不一致,导致每一次都是新的会话,当然不可能存在用户了.然后发现cookie浏览器不能自动保存,服务器响应set-cookie了 搜索问题,发现跨域,服务器响应的setCookie浏览器无

  • ASP.NET MVC中设置跨域访问问题

    1.什么是跨域请求 js禁止向不是当前域名的网站发起一次ajax请求,即使成功respone了数据,但是你的js仍然会报错.这是JS的同源策略限制,JS控制的并不是我们网站编程出现了问题.客户端(网页)和后台编程都可以有效解决这个问题.客户端可以通过JSONP来完成跨域访问:在ES6中为了解除同源策略问题,想出一个办法:当被请求网站为响应头respone添加了一个名为Access-Control-Allow-Origin的header,设置其值等于发起请求网站的域名地址的话,这次请求被视为允许.

随机推荐