一个类似的问题已经被问到这里,但我不确定如何解决这个问题。
我有一个带有许多视图的web应用程序,其中一些视图在另一个使用iframe的软件中使用。
其中一些视图可以工作,但是我最近添加了两个新的视图,由于某种原因,我不能在iframe中使用它们。仔细观察,我发现这两个新视图将X-FRAME-OPTIONS值添加为SAMEORIGIN,这阻止了它们在iframe中显示。
两个问题:
- 为什么只有新视图有这个新的X-FRAME-OPTIONS值为SAMEORIGIN?
- 我如何从视图中删除这些标题?
编辑我发现只有当视图包含绑定到asp动作的表单数据时才会发生这种情况。
下面的不工作,自动添加X-IFRAME-OPTIONS头:
<form asp-action="myAspAction_1" enctype="multipart/form-data" id="my-form">
<div style="text-align: center; margin: auto;">
<label>Choose file: </label><input asp-for="myAspAction_2" onchange="changeFnc()" style="width: 200px; text-align: center; margin: auto;" />
</div>
<input id="input-box-1" type="submit" value="My value" disabled="true" style="width:200px; margin:20px" />
</form>
如果我删除asp-action和asp-for,它可以工作:
<form enctype="multipart/form-data" id="my-form">
<div style="text-align: center; margin: auto;">
<label>Choose file: </label><input onchange="changeFnc()" style="width: 200px; text-align: center; margin: auto;" />
</div>
<input id="input-box-1" type="submit" value="My value" disabled="true" style="width:200px; margin:20px" />
</form>
在asp.net core中,您可以将以下代码添加到Startup.cs中的ConfigureServices
方法中以跳过限制:
services.AddAntiforgery(o => o.SuppressXFrameOptionsHeader = true);