我用jquery ajax发送一个表单,如下所示:
$("#login").submit(function(e) {
e.preventDefault();
var url = "login";
$.ajax({
url:url,
type:'POST',
data:$(this).serialize(),
success:function(result){
$("#response").text(result)
});});
如果登录成功,我想定位页面。这是我的php条件:
if(islogin())
header("Location:".$home_url."home");
}
else{
echo "Oops! Something is wrong!";
}
如何更改jquery脚本以定位页面?谢谢
使用更改ajax成功声明
success: function(data, status, xhr) {
console.log(xhr.getResponseHeader('Location'));
}
所以你的完整脚本是:
$("#login").submit(function(e) {
e.preventDefault();
var url = "login";
$.ajax({
url:url,
type:'POST',
data:$(this).serialize(),
success: function(data, status, xhr) {
console.log(xhr.getResponseHeader('Location'));
}
});});
您的php脚本将更改为:
<?php
header("Access-Control-Expose-Headers: Location");
if(islogin())
echo $home_url."home";
}
else{
echo "Oops! Something is wrong!";
}
?>
试试这个:
JS-
$("#login").submit(function(e) {
e.preventDefault();
var url = "login";
$.ajax({
url:url,
type:'POST',
data:$(this).serialize(),
success:function(result){
if (result.indexOf('Oops') !=-1) {
$("#response").text(result)
} else {
window.location.href = result;
}
});
});
PHP
if(islogin())
echo $home_url."home";
}
else{
echo "Oops! Something is wrong!";
}
如果更改页面,为什么要使用Ajax?
如果你仍然想,回显实际的新位置,而不是设置标题并进行
success:function(result){
if (result.indexOf("Oops") !=-1) $("#response").text(result);
else location.replace(result);
});