0

私は次のPHPコードを持っています:

<?php
require_once("support.php");

$query = $_POST["search"];

$google = "http://www.google.com/search?q=" . $query;
$bing = "http://www.bing.com/search?q=" . $query;
$yahoo ="http://search.yahoo.com/search?p=" . $query;
$ask = "http://www.ask.com/web?q=" . $query;

$body= "<html><head>";
$body .= "<script src=\"scripts.js\"></script>";
$body .= "</head>";
$body .= "<frameset rows=\"50%,50%\" cols=\"50%,50%\" >";
$body .= "<frame src=\"$google\" />";
$body .= "<frame src=\"$bing\" />";
$body .= "<frame src=\"$yahoo\" />";
$body .= "<frame src=\"$ask\" />";
$body .= "</frameset>";

$body .= "</html>";

echo $body;
?>

これにより、次のhtmlが生成されます。

<html>
  <head>
      <script src="scripts.js"></script>
  </head>
  <frameset rows="50%,50%" cols="50%,50%" >
       <frame src="http://www.google.com/search?q=adf" />
       <frame src="http://www.bing.com/search?q=adf" />
       <frame src="http://search.yahoo.com/search?p=adf" />
       <frame src="http://www.ask.com/web?q=adf" />
  </frameset>
</html>

これをグーグルクロームで開くと、上記のURLから期待されるコンテンツの4つのフレームが表示されます。しかし、最初のフレームでは、srcはgoogleからのものであり、何も得られません。ただの空白のフレーム。ここで何が起こっているのか分かりますか?

ありがとう

4

3 に答える 3

4

Google はX-Frame-OptionsヘッダーをSAMEORIGINに設定します。これにより、Google.com 以外のサイトがページを埋め込むことが禁止されます。最新のブラウザーのほとんどは、この設定を尊重します。

于 2012-04-30T21:45:52.417 に答える
0

開発者ツールを Chrome 拡張機能として使用できます。Firebug も同様の仕事をします。Web ページで Ctrl+Shift+J を押すと、Chrome が開発者ツール インターフェイスとともにポップアップ表示されます。

ここから [コンソール] をクリックし、エラー メッセージがないか確認します。Same-Origin x-frame オプションで同様の問題が発生したことを覚えていますが、これは認証の問題があった GDocs の場合でした。私の場合、簡単な回避策はなく、別のタブを使用しました。

このスレッドも役立つかもしれません: Iframe に Google ドキュメント コレクションを埋め込むにはどうすればよいですか?

于 2012-04-30T21:44:30.857 に答える