一个JS文件正在进行ajax调用。在这个ajax调用成功之后,又进行了一个ajax调用。第二次呼叫检查电子邮件是否已注册。如果是,则第二个AJAX调用不会收到返回的数据,如本例中firebug和Chrome控制台所示。但相同的代码在localhost中运行良好,而上述问题只发生在在线服务器中。
托管页面位于http://twmobilefitness.com/signup/
. 单击末尾的“立即注册”链接时,就会出现问题。如果你想让问题发生,你必须使用相同的电子邮件地址注册两次。
JS公司:
$.ajax( {
url : base_url+"/wp-admin/admin-ajax.php",
type : \'GET\',
cache : false,
data : \'action=check_user_name&\'
+ Math.floor( ( Math.random() * 100 ) +1 )
+ \'&user_name=\'+user_name,
success : function( result ) {
if ( parseInt( result ) == 0 ) {
$( ".result" ).html( \'<span class="error">User name not available </span>\' );
} else if ( parseInt( result ) == 1 ) {
$.ajax( {
url : base_url
+ "/wp-admin/admin-ajax.php",
type : \'GET\',
cache : false,
data : \'action=check_email_used&\'
+ Math.floor( ( Math.random() *100 ) +1 )
+ \'&email=\' + email,
success : function( result_email ) {
if ( parseInt( result_email ) == 0 ) {
$( ".result" ).html( \'<span class="error">Email already used </span>\' );
} else if ( parseInt( result_email ) == 1 ) {
$( ".result" ).html( \'\' );
$( ".signup_div" ).hide();
$( ".signup_emergency_contact" ).show();
}
}
} );
}
}
} );
functions.php
有add_action(\'wp_ajax_check_user_name\',\'check_user_name\');
add_action(\'wp_ajax_nopriv_check_user_name\',\'check_user_name\');
add_action( \'wp_ajax_check_email_used\',\'check_email_used\' );
add_action( \'wp_ajax_nopriv_check_email_used\',\'check_email_used\' );
function check_user_name() {
global $wpdb;
$user_name = trim( $_GET[\'user_name\'] );
$MobTraining = new MobTraining();
$table =trim( "{$wpdb->prefix}users" );
$array_where[\'user_login\'] = $user_name;
$sql_fetch = $MobTraining->fetch( $table, $array_where );
$row = $wpdb->get_results( $sql_fetch, ARRAY_A );
if ( sizeof( $row ) != 0 ) {
echo \'0\';
} else {
echo \'1\';
}
die();
}
function check_email_used() {
global $wpdb;
$email = trim( $_GET[\'email\'] );
$MobTraining = new MobTraining();
$table = trim( "{$wpdb->prefix}users" );
$array_where[\'user_email\'] = $email;
$sql_fetch = "SELECT * FROM $table WHERE `user_email`=\'$email\'";
$row = $wpdb->get_results( $sql_fetch, ARRAY_A );
if ( sizeof( $row ) != 0 ) {
echo \'0\';
} else {
echo \'1\';
}
die();
}
如何使代码在联机服务器中工作?