【发布时间】:2014-01-20 02:58:00
【问题描述】:
我正在开发一个托管在我公司网络上且只能从网络内访问的网站,因此我不关心跨域请求。
无论如何,我正在处理的这个特定网站在导航栏中添加了一个“提供反馈”链接。这个“提供反馈”链接打开一个 jQuery 模式对话框,在这个对话框中是一个 iframe,它从一个 URL 加载,该 URL 的服务器与该特定网站所在的服务器不同,因此我得到了错误。
MVC4 运行良好,没有这样的问题,只有当我升级到 MVC5 时。 MVC5 有一些不同之处,它可以防止将内容加载到框架中。
我已阅读有关将 X-Frame 选项设置为“ALLOWFROM”的信息 - 但这是否意味着我需要在 iframe 中加载的应用程序 URL 或调用应用程序(具有此链接的网站在导航栏中)?我还要补充一点,这个问题只有在我将应该在iframe 中加载的应用程序从 MVC4/WebAPI 升级到 MVC5/WebAPI 版本 2 时才出现。使用以前的 MVC 版本我对此没有任何问题。我该如何解决这个问题?
Firebug 的大版本:
这是我在应用程序中的客户端代码,其中包含“提供反馈”的代码:
$(document).ready(function () {
$('body').append("<div id='dialog-modal'><iframe width='900' height='420' src='http://blah.blah.net/ApplicationName/AppFeedback/Create?appId=TestApp'></iframe></div>");
$("#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");
});
【问题讨论】:
标签: javascript jquery asp.net-mvc-4 iframe asp.net-web-api