我有一个Login弹出窗体,我将ajax post请求发送到Login.asp脚本,以防止在提交后转到POST URL。
<script>
$(function() {
$('#contactForm').submit(function(e){
e.preventDefault();
$.ajax({
url:'/ASPLogin/Login.asp',
type:'POST',
data:$('#contactForm').serialize(),
dataType:'text',
success: function(response)
{
var temp = new Array();
temp = response.split("|");
if (temp[0] == 'something') {
}
else {
$("#response").html(response);
}
}
});
});
});
</script>
在Login.asp中
If OK Then
response.redirect("/index.asp?token=" & str)
Else
response.write("error")
End If
因此,当登录错误时,我将错误消息放入弹出窗体,如果登录正常则我需要关闭弹出窗体并重定向。
但是我在弹出窗体中重定向了页面源。
我试着这样做
If OK Then
response.write("<script>$('#closeBut').click();</script>")
response.redirect("/index.asp?token=" & str)
Else
response.write("error")
End If
弹出窗口已关闭但页面未重定向
我试着这样做
If OK Then
response.write("<script>$('#closeBut').click();</script>")
Response.Write("<script>window.location.href = " & "'/index.asp?token=" & str & "';</script>")
Else
response.write("error")
End If
弹出窗口已关闭但页面未重定向
如何解决这个问题?如何正常关闭弹出窗口和重定向页面?
答案 0 :(得分:2)
当从ajax发出请求时,服务器端重定向不会影响浏览器本身,只有ajax请求对象才会在响应中看到重定向的页面源。
您需要响应。编写网址,以便您可以进行客户端重定向
例如:
If OK Then
response.write("/index.asp?token=" & str)
Else
response.write("error")
End If
然后在ajax成功事件中:
success: function(response)
{
if (response != 'error') {
location.href = response;
}
}