项目中出现多个域名下的Cookie
前言:我们在查看一个项目的Cookie时,有时会看到多个域名下的Cookie,如下图:
其中一种常见的原因是:因为我们在项目中引用了另一个项目的资源。如下图:
? ? 重点:浏览器的一种默认机制:如果我们引用了另一个项目的资源,那么该项目域下的Cookie对本项目可见;但是虽然可见,但依然,不可跨域访问和设置Cookie。 ? 那么我们如何去模仿一下这个效果呢?? 实验方案一:根据默认机制,我们需要2个项目,A和B,在A里建一个可以创建A对应域名:a.com的Cookie的JS:test.js,在B项目里添加A项目的资源: 1-项目A-test.js: alert(1); $(function () { alert(2); $.cookie('the12345555','value123',{ expires: 7,domain: 'a.com',path: '/' }); }); 2-项目B-common.js添加A项目资源: var script = document.createElement('script'); script.src = "https://mstyle1.tbdress.com/script/usercenter/test.js"; script.type = "text/javascript"; script.async = true; document.head.appendChild(script); ? 最后访问B项目测试效果:我们可能会遇到浏览器的提示:blocked devtools? ?或者? ?request may be blocked? ? 请参考解决访问:https://community.akamai.com/customers/s/article/Blocking-Requests-Other-Hidden-Chrome-Developer-Tools?language=en_US 也可以在谷歌浏览器打开开发者工具F12,在按F1打开设置页面如下,大家试试效果吧:
? 测试结果:有弹框,但是cookie设置失败!? 但是我们看到了a项目下的cookie,只是没有添加新的cookie成功。? ?这是因为新的cookie创建的方式是靠B引用A,在B里执行了域名在A下的Cookie,属于跨域设置Cookie,最后的结果必然就失败了。
根据上面失败的原因改进实验: 实验方案二:我们需要2个项目,A和B,在A里建一个可以创建A对应域名:a.com的Cookie的JS:test.js,在A项目里引用test.js(让创建方法执行在A项目中),在B项目里添加A项目的资源test.js,其实可以是任一资源,不一定在引用test.js,即使引用了,也会跨域设置失败,真正成功的还是靠A项目自己执行的效果。? ?思路就是这样了,大家自己测试哈。 ? 实验方案三:我们需要2个项目,A和B,? B随便引用A的一资源,同时B发起一个异步请求到A中,让A在程序中创建A的Cookie,由于B引用了A的资源,那么A自己创建的Cookie对B可见。? ? ? 自己实现哈。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 返回json中的双引号
- ASP.NET MVC中的自定义文件夹结构5
- 走进 .Net 单元测试
- asp.net-mvc-3 – _AppStart正在执行时无法创建存储范围
- asp.net-core-mvc – 在Entity Framework Core中使用[Compl
- asp.net – 如何在Simile时间轴中重新加载数据
- 如何在ASP.Net MVC应用程序中访问WCF服务?
- asp.net – 部署到Azure后编译器错误
- asp.net – 我想要一个Master UserControl(一个Master页面,
- 如何在ASP.NET WebForm中使用Ninject注入依赖项?
- asp.net – 让visual studio autoformat成为我的
- asp.net动态加载程序集
- asp.net-mvc – datetime.parse用西班牙语进行游
- 验证 – ASP.NET MVC 4避免生成datetime的data-v
- asp.net-mvc – ASP.NET MVC.如何创建接受和mult
- asp.net-mvc-3 – .Net Mvc 3触发器(提交按钮除外
- asp.net-mvc – 在ASP.NET MVC 2中模板化Html.Di
- ASP.NET Web API项目自动生成接口文档和测试页面
- asp.net – ASMX Web服务 – 返回具有属性的用户
- asp.net – ReportViewer阻止其他功能,直到报告查