X-Frame-Options拒绝加载:“http://test.test.net/Feedback/Create?appId=TestApp”不允许使用MVC5进行跨源框架
我正在一个托管在我公司网络上的网站,只能从网络中访问,所以我不关心跨域请求。
无论如何,这个我正在研究的特定网站我在导航栏中添加了“提供反馈”链接。 这个“提供反馈”链接打开一个jQuery模式对话框,在这个对话框中是一个iframe
,它加载的URL服务器不同于托管这个特定网站的服务器,因此我得到的错误。
MVC4运行良好,没有这样的问题,只有当我升级到MVC5时才会这样。 MVC5有一些不同之处可以防止将内容加载到框架中。
我已经阅读过将X-Frame选项设置为“ALLOWFROM” – 但这是否意味着我需要在iframe
加载的应用程序URL或调用应用程序(导航栏中包含此链接的网站)上设置此选项? 我还要补充说,当我将应用程序从MVC4 / WebAPI升级到MVC5 / WebAPI版本2的iframe
,才会出现此问题。我使用以前版本的MVC时没有遇到任何问题。 我该如何解决这个问题?
更大版本的Firebug:
这是我的应用程序中的客户端代码,其中包含“提供反馈”的代码:
$(document).ready(function () { $('body').append(""); $("#dialog-modal").dialog({ buttons: { "Close": function () { $(this).dialog("close"); } }, title: "Provide Feedback!", autoOpen: false, height: 560, width: 940, modal: true, overlay: { backgroundColor: "#000000", opacity: 0.75 }, resizable: true, open: function () { $('.ui-widget-overlay').bind('click', function () { $('#dialog-modal').dialog('close'); }) } }); $("a.feedback").live("click", function (event) { event.preventDefault(); $("#dialog-modal").dialog("open"); });
将它放在Global.asax
对我Global.asax
:
protected void Application_PreSendRequestHeaders(object sender, EventArgs e) { HttpContext.Current.Response.Headers.Remove("X-Frame-Options"); }
显然,MVC4和MVC5之间存在差异,它在MVC4中有效,但在MVC5中没有,这就是我正在使用的。
您应该在iframe中包含的应用程序上设置此响应标头。
- asp.net mvc ajaxpost返回404未找到
- 使用mvc4中的form.serialize()发布包含HttpPostedFileBase文件的模型以及一些参数
- 在Internet Explorer中的jQuery.ajax PUT请求问题
- 未捕获的TypeError:undefined不是函数
- ASP.NET MVC – JSON响应向我发送文件而不是更新jqueryUI
- 如何在MVC中点击EDIT按钮将DropdownList更改为可编辑的文本框?
- JSON日期未发布到控制器(KnockoutJS / JQuery,MVC 4 RC)
- Javascript事件处理程序不拦截表单提交
- 在MVC控制器中构建网格