PHP AJAX post没有看到现有的$uCookie[';x';]
我知道这是一个常见的问题,我以前遇到过,并且能够解决它,但我无法解决这个问题,所以我需要一些额外的眼睛/大脑 下面是我在使用调试器进行调试时看到的确切场景:PHP AJAX post没有看到现有的$uCookie[';x';],php,javascript,ajax,jquery,Php,Javascript,Ajax,Jquery,我知道这是一个常见的问题,我以前遇到过,并且能够解决它,但我无法解决这个问题,所以我需要一些额外的眼睛/大脑 下面是我在使用调试器进行调试时看到的确切场景: [home page load] Session::Load() $session_uid = (new) d149f... $row = false [login page load] Session::Load() $_COOKIE['x'] (found/existing) d149f... $session_uid = d149f
[home page load]
Session::Load()
$session_uid = (new) d149f...
$row = false
[login page load]
Session::Load()
$_COOKIE['x'] (found/existing) d149f...
$session_uid = d149f...
$row = data
$_COOKIE['x'] d149f...
[login page login submit] // <--- submitted via Ajax code above
Session::Load()
$_COOKIE['x'] == null // <--- Here's the problem
$session_uid = (new) 4bd87...
$row = false
$_COOKIE['x'] d149f... (original)
+
$_COOKIE['x'] 4bd87... (new created from ajax post)
好吧,我猜这是
setcookie
的路径,毕竟,将其从默认值更改为“/”可以立即明确解决问题
旧:setcookie($cookie\u name,$session\u uid)代码>
新:setcookie($cookie\u name,$session\u uid,time()+60*60,“/”)代码>也许这个anwser可以帮助您:
$( '#btnLogin' ).on( "click", function() {
console.debug( 'Click' );
// Btn
var btn = $( this );
// Form data
var frm = $( '#' + btn.val() );
// Validate
if ( !frm.valid() ) {
return false;
}
btn.prop( 'disabled', true ).html( 'Please wait...' );
var frmData = frm.serializeArray();
// Ajax execute
var go = $.ajax( {
type: 'POST',
url: '<?php echo CONTROLLER; ?>/ajax',
dataType: 'json',
data: frmData
} ).done( function( results ) {
console.debug( 'Done' );
console.debug( results );
// Handle Results
if ( results['status'] === 'OK'
&& results['message']['status'] === 'active')
{
$( '#user_login_results' ).html( "<span class='alert alert-success'>Success! Click <a href='#' onClick='document.location.reload(true)'>here</a> to reload.</span><p></p>" );
btn.html( 'Success!' );
<?php
$return = 'login';
if ( !empty( $_REQUEST[ 'return' ] ) ) {
$return = htmlentities( $_REQUEST[ 'return' ] );
}
?>
location.href = '<?php echo CONTROLLER; ?>/en/<?php echo $return; ?>';
}
else
{
console.debug( results );
$( '#user_login_results' ).html( "<span class='alert alert-error'>Please check your username and passphrase and try again.</span><p></p>" );
btn.prop( "disabled", false ).html( "Try Again »" );
}
} ).fail( function( msg ) {
// Error results
console.debug( msg );
$( '#user_login_results' ).append( "<span class='alert alert-error'>Error! Please try again later.</span><p></p>" );
btn.html( 'Error!' ).removeClass( 'btn-primary' ).addClass( 'btn-danger' );
} ).always( function() {
$( "body" ).scrollTop( $( "#result" ) );
} );
} );