在Html上传组件中,有很多使用的是iframe来获取上传文件后的返回内容。一般使用form表单来提交文件,使用iframe作为target接收返回内容。在项目开发中,有时候会遇到在IE8,9中获取iframe内容出现拒绝访问。例如下面这句:
var html = iframe[0].contentDocument.body.innerHTML;
经过反复查找之后,并非是跨域,或者其他问题。结果发现是服务器返回的header中X-Frame-Options为DENY,这样会导致上传成功,但是iframe获取不了返回的数据。
所以X-Frame-Options需要修改成SAMEORIGIN,通过nginx测试过,验证成功。下面是X-Frame-Options的各项值的含义:
(1)DENY — 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
(2)SAMEORIGIN — 表示该页面可以在相同域名页面的 frame 中展示。
(3)ALLOW-FROM https://example.com/ — 表示该页面可以在指定来源的 frame 中展示。