我在检索XML时遇到重定向问题。它是一个获取ID用户名和ID密码值的登录名,并检查它是否存在。在这种情况下,它显示警报“工作”但不重定向页面,我不知道为什么。
点击查询功能如下:
$(document).ready(function(){
$("#submit").click(function(){
login();
function login() {
$.ajax({
type: 'POST',
url: 'dt_login.php',
async: false,
cache: false,
data: {
params: {
op: 'authenticate',
username: $("#username").val(),
password: $("#password").val()
}
},
dataType: 'xml',
success: function(xml) {
switch($(xml).find('message').text()) {
case 'OK':
alert( "worked" );
window.location = 'http://www.newlocation.com';
break;
case 'DENIED':
alert( "Incorrect username or password." );
break;
default:
alert( "defualt" );
break;
}
}
});
}
});
});
dt_login.php:
<?php
function api($params) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://exampleurl.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$output = curl_exec($ch);
curl_close($ch);
print $output;
$xml = new SimpleXMLElement($output);
$_SESSION['user_id']= $xml->user_id;
}
if(is_array($_POST['params'])) { api($_POST['params']); }
?>
输出:150OK1111swatkinsSAM WATKINS
有什么想法吗?为什么它会显示警报但不会重定向?
答案 0 :(得分:1)
您没有取消表单提交,因此您处于竞争状态。表单提交,您正在尝试重定向。您需要取消表单提交。
$("#submit").click(function (evt){
evt.preventDeafult();
理想情况下,您还可以连接到表单上的onsubmit处理程序,而不是单击按钮。使用提交按钮名称是个坏主意,因为它会与submit()