我有一个调用ajax的方法,成功后我需要重定向到另一个页面。
我认为当ajax调用结束时,我的URL默认已更改,以我在ajax调用中发布的用户名和密码结束。
如何明智地处理这个问题?我没有删除async false的情况,我知道我可以使用ajax给定密钥发送密码和用户名。
function Login() {
var model = { user_Name: $("#username").val(), Password: $("#password").val() };
$.ajax({
async: false,
url: 'http://localhost:51525/api/HomeApi/',
type: 'POST',
data: JSON.stringify(model),
dataType: "json",
success: function (data) {
alert("Function is successfully returned now redirect");
//how to redirect??
//window.location.href = 'http://localhost:51525/user/';
//window.location.href = '@Url.Action("Index","User")';
}
});
}
答案 0 :(得分:1)
您的网址显示用户名和密码的原因是您使用默认方法触发表单提交=" GET"。
有很多选择。 E.G:
从您的登录返回false。这将禁用表单提交。
function Login() {
//Your code...
return false;
}
或者
根本不使用ajax,并使用普通表格帖子:
<form method="POST" action="/api/HomeApi/">
此外,用户可以通过其他方式提交表单,因此<form onsubmit="Login()">
可能优于<input onclick="Login()">