3

これを含む.jadeビューがあります:

iframe(width='800', height='166', scrolling='no', frameborder='no', src= srcStr)

そして、私はこれを行うことによって、ユーザーからの入力ソースURLを使用してそれをレンダリングしようとします:

var string = req.body.code;
res.render('embedview', { srcStr: string});

これで、ソースを表示したときにiframeコードが(src = "..."属性で)正しく表示されていても、レンダリングされたページにはコンテンツのないiframeが表示されます。ほとんどの場合、最初にsrc = ""を使用してiframeをロードし、次にリロードせずにソースURLを貼り付けているようです。

4

1 に答える 1

3

生成されたjadeマークアップまたはHTMLマークアップの問題ではありません。別のドメインからのiframedをサポートするページへのURLを提供すると、スニペットが正常に機能するようになりました。

たとえば、www.google.comはこれをサポートしていません。以下のcurl-vhttp://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をご覧ください。

于 2012-08-22T22:29:14.767 に答える