当前位置: 首页 > news >正文

vue通过iframe方式嵌套grafana图表

文章目录

  • 前言
  • 一、iframe方式实现
    • xxx.xxx.com拒绝连接
    • 登录不跳转
      • Cookie 的SameSite
      • 问题解决
      • 不显示额外区域(kiosk=1)


前言

我们的前端是vue实现的,监控图表是在grafana中的,需要在项目web页面直接显示grafana图表


一、iframe方式实现

xxx.xxx.com拒绝连接

这个报错,需要修改grafana的配置文件

allow_embedding = true

重启grafana服务后,可以解决

登录不跳转

在这里插入图片描述

遇到登录不跳转查看F12 Network,看到grafana的 login 接口Respons的时候有个感叹号,点上去会有提示:

This Set-Cookie didn't specify a "SameSite" attribute and was defaulted to "SameSite=lax", and was blocked because it came from a cross-site response which was not the response to a top-level navigation. ....

在这里插入图片描述
原因:谷歌最新版的浏览器默认SameSite=Lax (该设置从2020 年7月14全面展开,具体见: https://www.chromestatus.com/feature/5088147346030592),如果设置SameSite=Lax , 并且嵌入Iframe的地址和iframe外的地址不是SameSite,那么嵌入iframe的地址将无法设置设置cookie。

什么是SameSite,首先应该理解site,所谓Site就是域名后缀和其前面的第一部分,比如web.dev可以是一个Site,从而 www.web.dev 和 static.web.dev 可以看成相同的Site。具体可以参考SameSite解释

Cookie 的SameSite

Cookie 的SameSite属性用来限制第三方 Cookie,从而减少安全风险,可以防范“跨站请求伪造”的攻击。

目前SameSite有三个常用的值Strict, Lax, None,他们的作用是对跨站请求的cookie做不同程度的限制
在这里插入图片描述
设置为Strict以后,跨站点就不会再传递该cookie
设置为Lax以后,会限制部分请求cookie的传递
不对cookie做设置,会在跨站点情况下发送cookie
常规模式下以前只有这三种情况,但是SameSite还可以设置为None,且从Chrome从76版本开始,开始对设置为None必须和Secure配合使用,表示为

常规模式下以前只有这三种情况,但是SameSite还可以设置为None,且从Chrome从76版本开始,开始对设置为None必须和Secure配合使用,表示为

问题解决

最后通过nginx代理统一域名,而且在nginx层面都设置https访问。问题成功解决。

参考链接:
chrome 同站策略(samesite)问题及解决方案https://blog.csdn.net/leftfist/article/details/112283784
iframe跨域解决方案
https://www.caodegao.com/archives/iframe-kua-yu-jie-jue-fang-an

不显示额外区域(kiosk=1)

https://domain.com/d/ce2allubty9z4e/e4b89a-e58aa1-e697a5-e5bf97?orgId=1&from=now-30m&to=now&theme=light&refresh=15m&&kiosk=1

http://www.lryc.cn/news/482003.html

相关文章:

  • 简单介绍下 Java 中的 @Validated 和 @Valid 注解的区别?
  • SpringBoot配置Rabbit中的MessageConverter对象
  • C++ 错题本--duplicate symbol问题
  • Cursor的chat与composer的使用体验分享
  • 【优选算法 — 滑动窗口】最大连续1的个数 将 x 减到0的最小操作数
  • 《TCP/IP网络编程》学习笔记 | Chapter 8:域名及网络地址
  • FastHTML快速入门:调试模式和 URL中的变量
  • C++高级编程(8)
  • AUTOSAR_EXP_ARAComAPI的7章笔记(2)
  • 【C++】 C++游戏设计---五子棋小游戏
  • 仿RabitMQ 模拟实现消息队列项目开发文档2(个人项目)
  • 李佳琦回到巅峰背后,双11成直播电商分水岭
  • 云计算在教育领域的应用
  • C语言 | Leetcode C语言题解之第543题二叉树的直径
  • 6、If、While、For、Switch
  • 萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
  • 【多线程】线程池如何知道一个线程的任务已经完成
  • Transformer介绍(一)
  • [CKS] TLS Secrets创建与挂载
  • java双向链表解析实现双向链表的创建含代码
  • 【Kafka-go】golang的kafka应用
  • redis:set集合命令,内部编码,使用场景
  • 45期代码随想录算法营总结
  • 深入理解Java中的instanceof关键字及接口新特性:方法实现的可能性
  • 【python中如果class没有self会怎行】
  • 【算法】(Python)动态规划
  • EasyExcel 学习之 导出 “提示问题”
  • 应用系统开发(3)低功耗四运算放大器LM324N
  • 基于微信小程序的电商平台+LW示例参考
  • [Android] Graphic Buffer 的申请