X-Frame-Options拒绝加载:websitename / Register不允许MVC5中的跨源框架

时间:2014-05-20 14:34:59

标签: c# asp.net iphone asp.net-mvc-5

我正在研究在移动设备上运行良好的网络项目,除了Iphone上的注册页面。我的应用程序在MVC 5 ASP.NET中。这是我在错误控制台中收到的错误。

Load denied by X-Frame-Options: WebsiteName/Register does
 not permit cross-origin framing.

我尝试了Accepted answer of this Post,但它对我不起作用。请帮帮我,我该如何解决问题。任何形式的帮助将不胜感激。谢谢

2 个答案:

答案 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");
 }

构建应用