MrDoc后台页面和个人页面显示异常

230 阅读1分钟

一、问题现象

在安装使用最新版(0.8.7)版本的MrDoc时,出现了管理页面和个人页面显示异常的问题, 具体表现为在控制台页面菜单栏显示正常,但是内容页显示异常,提示“xxx.xxx.xxx拒绝了连接请求” 如下图: image.png

二、问题原因

仔细查看了官方文档,和部署说明,多次尝试均未解决问题;自己感觉明显像跨域访问或者是ifream嵌入问题导致;所以打开页面调试工具,仔细排查日志信息。发现控制台有如下报错信息:

Refused to display 'https://doc.ifactory.top/' in a frame 
because it set multiple 'X-Frame-Options' headers with conflicting values ('ALLOWALL, deny').
Falling back to 'deny'.

提示说是有多个X-Frame-Options配置信息,导致冲突。然后按提示查看请求头,果然是这样。 应该是是官方提供的config.ini文件配置方式并不会覆盖原有配置,导致两条配置同时存在,出现了冲突。但是不配置又不能解决跨域引用问题。

三、解决方式

后来想到,我的站点部署方式是由Nginx在前端做二级域名转发,应该可以通过Nginx做一定设置。搜索一下,果然有转发时重置X-Frame-Options的操作:在二级域名转发配置节点下添加一下配置。问题圆满解决。

location / {
	#root   html;
	#index  index.html index.htm;
	proxy_pass   http://com.ityj.frame;
	proxy_hide_header X-Frame-Options;   # 避免出现多个X-Frame-Options属性
	add_header X-Frame-Options ALLOWALL; # 将之前网页的SAMEORIGIN属性给替换了,可以嵌套了
}

鸣谢:惊涛骇浪、同学的文章:使用Iframe时针对X-Frame-Options跨域问题的解决方案-Nginx(亲测有效)