项目集成javamelody页面
springboot项目中整个javamelody监控,前端页面需要嵌入监控页面使用iframe报Refused to display in a frame because it set ‘X-Frame-Options’ to 'deny’的问题
1.通过springboot整合javamelody
向项目中引入依赖即可
<!-- javamelody监控 http://localhost:8080/monitoring-->
<dependency>
<groupId>net.bull.javamelody</groupId>
<artifactId>javamelody-spring-boot-starter</artifactId>
<version>1.86.0</version>
</dependency>
引入后,启动项目访问 http://ip:port/monitoring 就可以访问到页面
2.前端页面使用iframe嵌入
使用iframe嵌入
<div v-loading="loading" :style="'height:'+ height">
<iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" />
</div>
访问前端页面,出现错误 Refused to display in a frame because it set ‘X-Frame-Options’ to ‘deny’
3.问题原因
javamelody监控的页面,默认是不允许跨域嵌入iframe里的,详细跨域内容,X-Frame-Options指南
4.解决方法
使用nginx代理并配置允许跨域,前端iframe配置src=“/monitoring”
# jvm监控
location /monitoring {
proxy_hide_header X-Frame-Options;
add_header X-Frame-Options ALLOWALL;
proxy_pass http://localhost:8000;# 后端地址
}
问题解决!