WordPress 中的Ajax 呼叫:輸出問題故障排除
您的ajax 呼叫始終返回0 作為輸出,這讓您對原因感到困惑。要解決此問題,請考慮以下措施:
WordPress 中的全域 ajaxurl 變數:
WordPress 在後端定義了全域 ajaxurl 變數,以方便 AJAX 呼叫。但是,該變數在前端中不可用。
在前端定義ajaxurl:
要在前端使用AJAX調用,您需要手動定義ajaxurl變數。一個有效的方法是透過wp_localize_script.
使用wp_localize_script:
function my_enqueue() { wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') ); wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); } add_action( 'wp_enqueue_scripts', 'my_enqueue' );假設您的AJAX 呼叫駐留在my-ajax-script.js 中,請按如下方式使用wp_localize_script:
函數my_enqueue() { wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') ); wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); } add_action( 'wp_enqueue_scripts', 'my_enqueue' );
這會在你的 JS 檔案中建立一個 my_ajax_object 對象,其中包含 ajax_url。jQuery.ajax({
type: "post",
dataType: "json",
url: my_ajax_object.ajax_url,
data: formData,
success: function(msg){
console.log(msg);
}
});
本地化腳本後,在JS 檔案中使用my_ajax_object 物件:
jQuery.ajax( { 類型:“帖子”, 資料類型:“json”, 網址:my_ajax_object.ajax_url, 數據:表單數據, 成功:函數(訊息){ 控制台.log(訊息); } });
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3