将 Facebox 与 .NET(Web 窗体)一起使用是很痛苦的——这个主要是 HTML 的网站是由其他人设计的。我也可能有 IIS (7.5) 问题。此 Facebox 弹出窗口位于一个单独的文件 login.html 中,该文件从 index.html 调用:
$k('a[rel*=example_2]').facebox_1({
loading_image : '/images/loading.gif',
close_image : '/images/closelabel.gif'
});
以及打开它的链接
<a href="login.html" title="Log In" rel="example_2" id='login'>Log In </a>
要提交的带有用户名和密码的表单(login.html):
<form name="login" method="post" action="#" onsubmit="return false;">
并在验证后(这是有效的),它发布到 login.aspx(login.html):
$('form[name="login"]').submit(function () {
var $loginForm = $('form[name="login"]');
if ($loginForm.valid()) {
$.post("Login.aspx", $(this).serialize());
} else {
$loginForm.validate();
}
});
表单张贴。我可以在 Visual Studio 的 login.aspx 的 Page_Load 方法中对其进行调试。Page_Load 方法的最后一行是:
Response.Redirect("welcomepage.html");
但是,Facebox 弹出窗口仍然存在。Firebug 显示该帖子,它点击了 login.aspx 的 Page_Load 方法,并且 Facebox 弹出窗口没有去任何地方。但是, Firebug 显示welcomepage.html 在XHR 的响应选项卡中呈现了两次(嗯?为什么是XHR?)请求。我以为 $.post 会定期回发。为什么我的浏览器实际上没有重定向。
尝试修复
如果我将 login.html 中的表单更改为action='login.aspx'
,我会得到一个 405.0 错误方法不允许(但是,它正在尝试发布到 index.html,嗯?)。而且我无法弄清楚如何在 Windows 7 上的 IIS 7.5 中解决此问题。我在 Visual Studio 中以及在本地部署到 IIS 时遇到此错误。我读过它可能与脚本映射、处理程序或我从一个发布但我找不到足够的修复的事实有关。这里有什么想法吗?如果我能弄清楚 Facebox 重定向,我可能不需要这个修复。