我使用wp\\u登录功能在wordpress中自定义登录。每当用户输入其凭据时,就会使用ajax调用另一个页面。在该页面中,我检查用户凭据,并使用wp\\u登录功能登录用户。然后发送确认信息,当前页面将捕获该信息并显示用户已成功登录。该代码在Chrome和Firefox中可用,但在IE中不起作用。这是AJAX文件中的代码。当前页面收到一个响应,表示用户已登录,但当我刷新时,它仍显示用户未登录(挣扎了几天,请帮帮我
$creds = array();
$creds[\'user_login\'] = $user;
$creds[\'user_password\'] = $password;
$creds[\'remember\'] = $remember;
$user = wp_signon( $creds, true );
if ( is_wp_error($user) ){
echo "Invalid Username or Password";
}
else {
$current_user = wp_get_current_user();
$userid=$current_user->ID;
mysql_pconnect($dbhost,$dbuser,$dbpass) or die ("Unable to connect to MySQL server");
$dbquerry= \'select `login` from wp_users where user_login="\'.$_GET[\'user\'].\'"\';
$result=mysql_db_query($dbname,$dbquerry);
list($login)=mysql_fetch_array($result);
if($login==1) {
echo "change";
}
else {
echo "success";
}
}
这段代码在Chrome和firefox中运行良好,而在IE中则不行
SO网友:Thirukumaran Nagarajan
最终找到了罪魁祸首并解决了问题:)IE缓存AJAX请求。所以,无论何时使用AJAX调用设置登录cookie,IE都会遇到麻烦。小心!!!!!在ajax调用中,在URL中填写一个随机数,以便IE不会捕获
在Ajax调用中插入
var d = new Date();
var n = d.getTime();
req.open("GET", "something.php?user"+username+"&x="+n);
通过这样做,IE不会缓存AJAX请求