【发布时间】:2011-02-01 17:51:48
【问题描述】:
用户完成并尝试提交表单后,我想查询服务器以查看用户是否已通过身份验证。如果没有,我想弹出一个登录窗口,登录后将关闭该窗口,使表单数据不受干扰并准备好提交。
问题是,如果用户已登录,我想调用 form.submit(),但由于这是来自回调,它会给出 XSS 错误。有没有更好的办法?这是我尝试过的:
function submitForm(form) { form.submit();}
$("#myForm").submit(function () {
var thisForm = this;
$.getJSON("/url/login_check/", function(data) {
if (data.loggedIn === true) {
submitForm(thisForm);
}
else {
// display login popup
}
});
return false;
});
【问题讨论】:
-
你说什么xss错误?
-
我的浏览器显示此消息:403 Forbidden Cross Site Request Forgery detected。请求中止。
-
您使用的是什么服务器端堆栈?这听起来很可疑——您不需要显式调用来检查登录状态。
-
django.我正在服务器上进行身份验证,但是如果在用户输入表单数据然后 POST 之后会话超时,则数据消失了。我认为在不更改原始表单及其数据的情况下弹出登录窗口是更好的用户体验。
-
米奇;在用户登录后简单地捕获表单内容并重新填充表单可能更简单。
标签: jquery json forms xss getjson