400 คำขอไม่ถูกต้องบน admin-ajax.php ใช้เบ็ดการกระทำ wp_enqueue_scripts เท่านั้น
ฉันทำงานอาแจ็กซ์เมื่อเร็ว ๆ นี้ บทเรียนที่คุณพบบนอินเทอร์เน็ตนั้นคล้ายกันมากและง่ายต่อการใช้งาน แต่ฉันมักจะได้รับคำขอที่ไม่ดี 400ในajax-admin.phpไฟล์ของฉัน หลังจากการค้นหาที่ยาวนานและเข้มข้นตอนนี้ฉันค้นพบแล้วว่าเป็นเพราะช่วงเวลาแห่งการรวมกลุ่ม ถ้าฉันใช้initaction hook เพื่อเริ่มต้นสคริปต์และwp_localize_scriptทุกอย่างทำงานได้ดี ดังนั้นรหัสจะต้องถูกต้อง ฉัน-หน้าทดสอบ functions.php function ajax_login_init(){ wp_register_script('ajax-login-script',get_stylesheet_directory_uri().'/js/ajax-login-script.js',array('jquery')); wp_enqueue_script('ajax-login-script'); wp_localize_script('ajax-login-script','ajax_login_object',array('ajaxurl' => admin_url('admin-ajax.php'),'redirecturl' => 'REDIRECT_URL_HERE','loadingmessage' => __('Sending user info, please wait...'))); add_action('wp_ajax_nopriv_ajaxlogin','ajax_login'); } if(!is_user_logged_in()){ add_action('init','ajax_login_init'); } function ajax_login(){ //nonce-field is created on page check_ajax_referer('ajax-login-nonce','security'); //CODE die(); } แต่ถ้าฉันใช้เช่นwp_enqeue_scriptsaction hook ฉันจะได้รับคำขอที่ไม่ดีเสมอ if(!is_user_logged_in()){ add_action('wp_enqueue_scripts','ajax_login_init'); } …