更新:これはIEですが、Chromeはまだこのエラーをスローしています。私は自分が所有するサイトをiフレームしようとしています私が所有する別のサイトによるものです。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>
やることが足りなくなってきました…よろしくお願いします。
MVC4はそれ自体でヘッダーを追加します(未承諾)。これを回避する唯一の方法は、ヘッダーを明示的に削除することでした。
Response.Headers.Remove("X-Frame-Options");
これをしないようにMVC4を説得する方法があるかもしれませんが、それは私のスコアのGoogleクエリでは機能しませんでした。
私の場合、ヘッダーを追加していたのは偽造防止トークンでした。これをApplication_Startに追加すると、追加が停止しました。
AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
次に、サイト全体をIFrameに含める必要があるため、 web.configのX-Frame-Options を追加しました。
Mike the Tikeの答えの詳細については、global.asax.csのapplication_startメソッドに追加されています。ここでは、usingディレクティブsystem.web.helpersが必要です。
IISが2番目のヘッダーを追加している可能性があります(これは、Chromeの開発ツールでF12キーを押し、ページの読み込みを試みてから[ネットワーク]をクリックし、失敗したページを右クリックして応答ヘッダーをコピーして確認します。 )。
IISによるヘッダーの追加を停止するには: