`
hwy1782
  • 浏览: 153344 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

cookie跨域问题

 
阅读更多

今天有时间,看了一下cookie跨域问题。总结一下

问题引入:淘宝公司有两个域名:taobao.com 和 tmall.com。但是淘宝和tmall共用一套会员体系,因此就存在跨域访问的问题。某用户在taobao.com下登录后(此时taobao域下的cookie中会保存该用户已经登录的信息),然后该用户访问tmall.com,但是由于跨域cookie不能访问的问题。会导致用户在tmall域下需要重新登录。淘宝是如何解决这个问题的呢?具体描述参见:淘宝如何跨域获取Cookie分析 。

 

淘宝如何跨域获取Cookie分析 一文中分析了淘宝如何保持不同域下cookie的一致性。在tmall.com加载的时候,发送一个ajax请求。通过jsonp的方式获取taobao域下公用的cookie。然后通过js将这些公用的cookie设置到tmall域下。解决了cookie不能公用的问题。

 

下面对其中使用的一些技术做一些解释。

 

1.同源策略

所谓:同源策略(同源指域名、协议、端口相同,一个著名的安全策略),一般来说位于server1.example.com的网页无法与不是server1.example.com的服务器沟通,而HTML的<script>元素是一个例外。利用<script>元素的这个开放策略,网页可以得到从其他来源动态产生的JSON资料,而这种使用模式就是所谓的JSONP。

 

2.JSONP

JSONP(JSON with Padding)是资料格式JSON的一种“使用模式”,可以让网页从别的网域要资料。另一个解决这个万恶他的方式是跨来源资料共享。

关于JSONP的一个详细介绍参见关于JSONP》《javascript(jquery getJSON) 跨域的操作(Jsonp和java操作例子)》一文中详细描述了javascript跨域操作的方法。

 

3.关于js回调函数:

《js回调函数(callback)》一文详细描述了js回调函数的意义:

js中callback的解释如下: 写道
A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.

 

4.js设置cookie的方法

参见《javascript 设置cookie》一文。

 

ps:

《通过设置P3P解决跨域不能设置cookie的问题》一文描述了跨域设置cookie的问题,这其中要注意的点:这里的跨域设置cookie是指:

所谓的cookie跨域,并不是taobao.com试图去设置tmall.com的cookie,而是taobao.com试图去设置taobao.com的cookie,但是这个过程是在一个tmall.com的域里进行的。

 

 

 

 

 

 

分享到:
评论

相关推荐

    Django的cookie跨域问题解决方法

    在这个场景中,我们关注的是Django应用中的cookie跨域问题,这通常在开发多站点或者前后端分离的项目中出现。在"实验室大作业购物商城示范"这样的项目中,处理好cookie跨域能够确保用户登录状态等敏感信息在不同域...

    JSP使用ajaxFileUpload.js实现跨域问题.docx

    ### JSP 使用 ajaxFileUpload.js 实现跨域问题解析 #### 一、背景与概述 在Web开发中,跨域问题一直是开发者面临的一个常见难题。跨域问题是由于浏览器的同源策略导致的,该策略限制了一个域下的JavaScript脚本...

    sockJs实现的websocket跨域

    为了解决这个问题,我们可以借助SockJS——一个提供跨域WebSocket兼容性的库。SockJS的目标是为浏览器创建一个透明的、低延迟、全双工的跨域通信通道。 SpringBoot是基于Spring框架的轻量级开发工具,可以方便地...

    完美解决iframe跨域问题

    本文将深入探讨如何“完美解决iframe跨域问题”,并介绍其底层的`window.name`转换代理实现。 **一、iframe跨域的基本概念** 1. **什么是iframe**:iframe是一种HTML元素,允许在单个网页中嵌入另一个网页。它通过...

    如何使用localstorage代替cookie实现跨域共享数据问题

    因为cookie在跨域的情况下,浏览器根本不允许互相访问的限制,为了突破这个限制,所以有了以下这个实现方案,使用postmessage和localstorage进行数据跨域共享。 原理比较简单,但是遇到的坑也不少,这里梳理一下,做...

    javascript插件 解决双向跨域问题

    它通过创建隐藏的IFrame和利用window.postMessage API来实现跨域通信。window.postMessage是HTML5引入的一个API,允许来自不同源的窗口进行通信。 使用jcrossdomain的步骤如下: 1. **引入插件**:在两个域的页面...

    Cesium加载Geoserver跨域问题

    当我们在Cesium中尝试加载由Geoserver提供的地图服务时,可能会遇到跨域问题。这个问题主要是由于浏览器的安全策略限制了不同源之间的通信。以下是对这个问题的详细解释和解决方法。 首先,理解“跨域”是什么至关...

    解决springboot实现跨域session共享问题

    为了实现跨域session共享,我们可以使用例如Redis或Memcached这样的分布式缓存来存储session。首先,需要添加相应的依赖到`pom.xml`或`build.gradle`文件中,然后配置Spring Boot的session存储机制: ```java @...

    前端后端跨域问题

    ### 前端后端跨域问题解析及解决方案 #### 跨域问题概述 跨域问题,即Cross-Origin Resource Sharing(CORS),是指浏览器出于安全考虑,在不同源之间执行网络请求时实施的一种限制机制。根据同源策略的规定,只有...

    axios中cookie跨域及相关配置示例详解

    在开发Web应用时,我们经常会遇到跨域问题,特别是在使用Vue.js等前端框架与后端API进行交互时。Axios作为一个流行的JavaScript库,用于处理HTTP请求,它在处理跨域请求时,特别是涉及到Cookie时,有一些特殊的配置...

    GeoServer跨域问题.zip

    首先,我们需要理解CORS(Cross-Origin Resource Sharing,跨源资源共享)机制,它是现代浏览器用来安全地实现跨域请求的一种方式。CORS通过在HTTP响应头中添加`Access-Control-Allow-Origin`字段来指定哪些源可以...

    Geoserver跨域问题解决方案

    在IT行业中,尤其是在Web开发领域,跨域问题是一个常见的挑战,尤其当涉及到GIS(地理信息系统)服务时,如Geoserver。Geoserver是一个开源的、基于Java的服务器,用于发布和管理地理空间数据。当从一个源(如浏览器...

    vue中axios实现数据交互与跨域问题

    本文将详细介绍如何使用axios在Vue.js项目中实现数据交互,并针对跨域问题给出解决方案。 首先,要在Vue.js项目中使用axios进行数据交互,首先需要安装axios模块。这可以通过npm或yarn来完成: ```bash npm ...

    nginx实现跨域访问遇到的问题

    Nginx 是一款轻量级的 Web 服务器、反向代理服务器和电子邮件代理服务器,然而在实现跨域访问时,会遇到一些问题。本文将讨论 Nginx 实现跨域访问遇到的系统环境问题解决方法,并分享踩过的坑。 跨域是什么? -----...

    tomcat跨域访问问题

    为了解决Tomcat的跨域问题,我们需要理解CORS的工作原理,并通过配置Tomcat来允许特定的跨域请求。 首先,让我们理解一下CORS的基本概念。CORS是一种W3C标准,它允许浏览器通过在HTTP头中添加`Access-Control-Allow...

    cesium跨域加载问题

    然而,当使用Cesium进行3D地球渲染时,我们可能需要加载来自不同源的数据,如瓦片、模型、纹理等,这就涉及到跨域问题。本篇文章将详细介绍如何解决Cesium在使用Tomcat服务器时的跨域问题。 首先,我们需要理解...

    window.name解决跨域问题的文档

    window.name 解决跨域问题的文档 window.name 传输技术是 Thomas Frank 发明的,旨在解决 cookie 的一些劣势,例如每个域名 4 x 20 Kb 的限制、数据只能是字符串、设置和获取 cookie 语法的复杂等等。后来,Kris ...

    跨域问题的小实验

    跨域问题在Web开发中是一项重要的概念,尤其是在使用JavaScript进行AJAX请求时,它涉及到浏览器的安全策略和同源政策(Same-Origin Policy)。同源政策是浏览器为了保护用户信息安全而实施的一项安全措施,它限制了...

    Ajax跨域问题及其解决方案.docx

    ### Ajax跨域问题及其解决方案 #### 一、Ajax跨域问题概述 在现代Web开发中,前后端分离架构越来越流行。这种模式下,前端页面与后端服务通常部署在不同的服务器上,甚至可能位于不同的域名下。当浏览器发起对不同...

    java cxf webservice接口解决跨域问题

    Java CXF Webservice接口在处理Web服务时,可能会遇到跨域问题,这通常是由于浏览器的安全策略限制了不同源之间的通信。解决这个问题的关键在于理解和应用CORS(Cross-Origin Resource Sharing)机制。CORS允许...

Global site tag (gtag.js) - Google Analytics