JAVASCRIPT:在本地主机上成功 Ajax 响应后重定向到主页
JAVASCRIPT: Redirecting to Homepage after successful Ajax response on localhost
我正在尝试在完成用户凭据验证后从登录页面重定向到主页。响应工作得很好。
获得成功响应后,我想重定向到主页。
我在客户端使用 Javascript,在服务器端使用 PHP。
我已经尝试了本网站其他地方提供的所有可能的解决方案。
这是登录页面重定向的脚本:
$(document).ready(function(){
$("#SignInForm").submit(function(){
var em = document.getElementById("Email").value;
var ps = document.getElementById("Password").value; var obj; $.ajax({
url: 'WebService/SignIn.php',
type: 'post',
async: false,
data: {
Email: em,
Password: ps
},
dataType: 'json',
success: function(data) { var str = JSON.stringify(data); obj = JSON.parse(str);
if(obj.status == 1) {
window.location="Homepage.html";
} else { alert("Invalid Username/Password") }
},
error: function(xhr){ //alert("An error occured: " + xhr.status + " " + xhr.statusText ); alert("An error occured. Please Try Again"); }
})
}); }); </script>
一个简单的
window.location="Homepage.html";
应该够了。但它不起作用。
感谢任何帮助。
window.location.href = "homepage.html"
?
问题与提交操作有关:
默认情况下,实际上,提交操作重定向到action(表单参数)中提供的url:https://developer.mozilla.org/en/docs/Web/API/HTMLFormElement/submit
因此,为了能够执行 AJAX 请求,您必须首先 防止 提交执行的默认操作。
只需替换:
$("#SignInForm").submit(function(){
var em = document.getElementById("Email").value;
有:
$("#SignInForm").submit(function(e){ // <-- note the e
e.preventDefault();
var em = document.getElementById("Email").value;
在不阻止默认操作的情况下发生的情况的实例:
阻止默认操作会发生什么的实例:
我正在尝试在完成用户凭据验证后从登录页面重定向到主页。响应工作得很好。 获得成功响应后,我想重定向到主页。 我在客户端使用 Javascript,在服务器端使用 PHP。
我已经尝试了本网站其他地方提供的所有可能的解决方案。
这是登录页面重定向的脚本:
$(document).ready(function(){ $("#SignInForm").submit(function(){
var em = document.getElementById("Email").value; var ps = document.getElementById("Password").value; var obj; $.ajax({ url: 'WebService/SignIn.php', type: 'post', async: false, data: { Email: em, Password: ps }, dataType: 'json', success: function(data) { var str = JSON.stringify(data); obj = JSON.parse(str); if(obj.status == 1) { window.location="Homepage.html"; } else { alert("Invalid Username/Password") } }, error: function(xhr){ //alert("An error occured: " + xhr.status + " " + xhr.statusText ); alert("An error occured. Please Try Again"); } }) }); }); </script>
一个简单的
window.location="Homepage.html";
应该够了。但它不起作用。
感谢任何帮助。
window.location.href = "homepage.html"
?
问题与提交操作有关:
默认情况下,实际上,提交操作重定向到action(表单参数)中提供的url:https://developer.mozilla.org/en/docs/Web/API/HTMLFormElement/submit
因此,为了能够执行 AJAX 请求,您必须首先 防止 提交执行的默认操作。
只需替换:
$("#SignInForm").submit(function(){
var em = document.getElementById("Email").value;
有:
$("#SignInForm").submit(function(e){ // <-- note the e
e.preventDefault();
var em = document.getElementById("Email").value;
在不阻止默认操作的情况下发生的情况的实例:
阻止默认操作会发生什么的实例: