我正在研究在移动设备上运行良好的网络项目,除了Iphone上的注册页面。我的应用程序在MVC 5 ASP.NET中。这是我在错误控制台中收到的错误。
Load denied by X-Frame-Options: WebsiteName/Register does
not permit cross-origin framing.
我尝试了Accepted answer of this Post,但它对我不起作用。请帮帮我,我该如何解决问题。任何形式的帮助将不胜感激。谢谢
答案 0 :(得分:1)
试试这个......你可以让它变得更加漂亮。
// CONTROLLER
[HttpGet]
[XFrameOptionAllowAll]
public ActionResult DoSomething()
{
var viewModel = new DoSomethingViewModel();
return View(viewModel);
}
// ATTRIBUTE
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.Response.Headers.Remove("X-Frame-Options");
filterContext.HttpContext.Response.AddHeader("X-Frame-Options", "AllowAll");
base.OnActionExecuting(filterContext);
}
此外...
如果您在视图中使用@Html.AntiForgeryToken()
,则此调用会将SAMEORIGIN插入标题中,因此也会强制您的调用失败。
答案 1 :(得分:1)
尝试使用,在web.config文件中包含代码
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="*" />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, DELETE" />
</customHeaders>
</httpProtocol>
</system.webServer>
然后在global.asax文件中包含以下代码
protected void Application_PreSendRequestHeaders()
{
Response.Headers.Remove("X-Frame-Options");
Response.AddHeader("X-Frame-Options", "AllowAll");
}
构建应用