12

更新: これは IE では機能しますが、Chrome ではまだこのエラーがスローされます。 私が所有する別のサイトで、私が所有するサイトを i-frame しようとしています。Chrome の JS コンソールに表示されるエラー メッセージは次のとおりです。

Multiple 'X-Frame-Options' headers with conflicting values ('AllowAll, SAMEORIGIN, AllowAll') encountered when loading 'http://subdomain.mysite.com:8080/Dir/'. Falling back to 'DENY'.
Refused to display 'http://subdomain.mysite.com:8080/Dir/' in a frame because it set 'X-Frame-Options' to 'AllowAll, SAMEORIGIN, AllowAll'.

これをどこにも設定していないすべての場所で SAMEORIGIN を検索しました。

メイン サイトは www.mysite.com で、もう一方のサイトは subdomain.mysite.com です。明らかに、同じ起源のポリシーにより、私はこれを行うことができません。そのため、subdomain.mysite.com の X-Frame-Options ヘッダーを「AllowAll」に設定しました。begin-request メソッドで、これを追加しました:

HttpContext.Current.Response.Headers.Remove("X-Frame-Options");
HttpContext.Current.Response.AddHeader("X-Frame-Options", "AllowAll");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");

ページレベルでこれを追加しました:

<meta name="x-frame-options" content="allowall" />

Javascriptで私はこれを追加しました:

<script type="text/javascript">
    document.domain = "mysite.com";
</script>

試してみたいものがなくなってきました... よろしくお願いします。

4

4 に答える 4

22

私の場合、ヘッダーを追加していたのは偽造防止トークンでした。これを Application_Start に追加すると、追加が停止されました。

AntiForgeryConfig.SuppressXFrameOptionsHeader = true;

次に、サイト全体を IFrame に含める必要があるため、web.config に X-Frame-Options を追加しました。

于 2014-06-05T08:58:24.163 に答える
1

Mike the Tike's answer の詳細をさらに詳しく説明します。これは、global.asax.cs の application_start メソッドに追加されます。ここで、using ディレクティブ system.web.helpers が必要になります。

于 2014-08-28T09:09:49.770 に答える
1

MVC4 がヘッダーを単独で追加することが判明しました (未承諾)。これを回避する唯一の方法は、ヘッダーを明示的に削除することでした。

Response.Headers.Remove("X-Frame-Options");

これを行わないように MVC4 を納得させる方法があるかもしれませんが、私の多数の Google クエリではサービスを提供しませんでした。

于 2014-03-05T04:32:34.477 に答える