我有一个.jade视图,其中包含:
iframe(width='800', height='166', scrolling='no', frameborder='no', src= srcStr)
我尝试使用来自用户的输入源url来渲染它:
var string = req.body.code;
res.render('embedview', { srcStr: string});
现在,呈现的页面将只显示没有任何内容的iframe,即使iframe代码在查看其源代码时看起来正确(使用src =“...”属性)。几乎看起来它首先使用src =“”加载iframe,然后在不重新加载的情况下粘贴源URL。
答案 0 :(得分:3)
生成的jade标记或HTML标记不是问题。一旦我提供了一个支持来自不同域名的网页的网址,我就让你的代码段正常工作。
例如,www.google.com不支持此功能。您可以在下面的回复中看到curl -v http://www.google.com标题 X-Frame-Options< HTTP/1.1 200 OK
< Date: Wed, 22 Aug 2012 22:21:45 GMT
< Expires: -1
< Cache-Control: private, max-age=0
< Content-Type: text/html; charset=ISO-8859-1
...
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN
< Transfer-Encoding: chunked
如果您控制所服务页面的代码,则可以关闭此选项。 这是一种防止点击劫持的安全措施。你可以在这里读更多关于它的内容 https://developer.mozilla.org/en-US/docs/The_X-FRAME-OPTIONS_response_header