【发布时间】:2013-11-10 18:03:55
【问题描述】:
将表单发布到 url 的安全网站有 2 个要求:
- 如果身份验证票仍然有效,表单将被发布到 new 窗口,否则 same 窗口会将用户重定向到登录页面。
- 将表单发布到新窗口将不会调用弹出窗口阻止程序。
我已经写了一个 ajax 动作来获得关于 auth 是否仍然有效的正确答案。 但我无法让重定向代码超出脚本执行上下文,从而避免弹出窗口拦截器。请帮忙!
JavaScript:
$('#someSystem').click(function () {
//deferred promise?
auth().done(function (result) {
//need to move below code outside this callback without side effects
if (result == 'true') {
var form = $('#ssoForm');
form.submit();
}
else {
window.location.href = "/account/login";
}
});
return false;
});
function auth() {
return $.ajax({ url: '/account/isauthenticated', method: "POST" });
}
已通过身份验证的用户的 HTML
<form action="/sso/somesystem" id="ssoForm" method="post" target="_blank">
...
<div id="someSystem">Continue</div>
</form>
【问题讨论】:
标签: c# javascript jquery ajax