Javascript 如何在登录后忽略重定向并重定向其他页面
我想知道如何在执行登录后忽略服务器的转移,然后将您重定向到另一个页面,对此进行了大量研究,但找不到真正有效的内容,已经尝试使用window.location、window.location.href、window.location.assign,但都不起作用。 到目前为止,我所能做的最好的事情就是使用window.open打开一个新页面,打开我想要的站点,但我一直被重定向Javascript 如何在登录后忽略重定向并重定向其他页面,javascript,html,ajax,redirect,Javascript,Html,Ajax,Redirect,我想知道如何在执行登录后忽略服务器的转移,然后将您重定向到另一个页面,对此进行了大量研究,但找不到真正有效的内容,已经尝试使用window.location、window.location.href、window.location.assign,但都不起作用。 到目前为止,我所能做的最好的事情就是使用window.open打开一个新页面,打开我想要的站点,但我一直被重定向 <HTML> <HEAD> <TITLE>ECORI LOGIN</TITLE&g
<HTML>
<HEAD>
<TITLE>ECORI LOGIN</TITLE>
<script language="JavaScript" type="text/javascript">
window.onbeforeunload = function(){
window.open("mypage.html");
}
</script>
<BODY>
<FORM action="http://mylogin.com/security/jspring_security_check" method="post" >
Usuario: <INPUT type="text" name="j_username"><BR>
Senha: <INPUT type="password" name="j_password"><BR>
<INPUT type="submit" value="Login" onclick="function">
</FORM>
</BODY>
</HTML>
ECORI登录
window.onbeforeunload=函数(){
window.open(“mypage.html”);
}
乌萨里奥:
森哈:
欢迎所有的帮助,我的英语很抱歉。
非常感谢 提交表单的行为基本上是告诉浏览器离开页面,将表单数据发送到
action
所在的任何位置,最后到达该页面。但您有两种选择:
form -(submit)-> jspring_security_check -(server redirect)-> final destination
我看到一条建议使用AJAX的评论,这只是另一种方法。xhr基本上是AJAX,但没有铃铛和哨子。老实说,您应该使用AJAX。它干净多了
function doPost(url, method, callback, data){
xhr = new XMLHttpRequest();
xhr.open(method, url, true);
xhr.send(data);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
if(typeof callback() != 'undefined')
callback(xhr.responseText);
}
}
}
function handleLogin(respObj){
console.log(respObj);
//Do what needs to be done here after form submit...
}
$(function(){
$("form input:button").on('click', function(e){
formid = "loginForm";
var form = document.getElementById(formid);
var formdata = new FormData(form);
doPost("http://mylogin.com/security/jspring_security_check", "post", "handleLogin", formdata);
});
});
我把你的表格改成:
<FORM method="post" id="loginForm">
Usuario: <INPUT type="text" name="j_username"><BR>
Senha: <INPUT type="password" name="j_password"><BR>
<INPUT type="button" value="Login">
</FORM>
恐怕这是不可能的,因为重定向是在访问者离开站点之后发生的。您可以尝试通过AJAX而不是默认方法发送表单提交,并让您的应用程序以适当的方式对响应的内容做出反应。有人可以帮助我吗?我没有访问服务器的权限,所有操作都应该在客户端完成,这会使操作变得困难=/有人会想到如何解决此错误问题。在“access Control Allow Origin”中,请求的资源源“null”上存在“access Control Allow Origin”标头,因此不允许访问。“或者只能解决访问服务器的问题?您好Joseph,谢谢您的回答,但是如果我没有访问servlet的权限,如何创建此函数,我没有想法=/对不起,我是AJAXvery中的begginer非常感谢,您帮了我很多忙,我真的不知道该怎么做,我唯一的问题是错误500:“Origin'null'因此不允许访问。响应的HTTP状态代码为500。“
formid = "loginForm";
var form = document.getElementById(formid);
var formdata = new FormData(form);
$.ajax({
url: 'http://mylogin.com/security/jspring_security_check',
data: formdata,
processData: false,
contentType: false,
type: 'POST',
success: function(data){
handleLogin(data);
}
});