wordpress管理员ajax不工作,返回整个页面的HTML

时间:2016-01-06 11:49:56

标签: php jquery ajax wordpress admin-ajax

我的objc_getAssociatedObject. UITapGestureRecognizer *singleTapRecogniser = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureHandler:)] autorelease]; [singleTapRecogniser setDelegate:self]; singleTapRecogniser.numberOfTouchesRequired = 1; singleTapRecogniser.numberOfTapsRequired = 1; [sectionHeaderView addGestureRecognizer:singleTapRecogniser]; 文件中有以下代码。

functions.php

并关注wp_enqueue_script( 'broadcast-ajax-request', get_template_directory_uri() . '/js/global.js', array( 'jquery' ) ); wp_localize_script( 'broadcast-ajax-request', 'ajaxadmin', array('ajaxurl'=> admin_url( 'admin-ajax.php' ))); add_action( 'wp_ajax_get_my_option', 'get_my_option' ); add_action( 'wp_ajax_nopriv_get_my_option', 'get_my_option' ); function get_my_option() { print_r($_POST); exit; } 中的代码。

global.js

但它始终会返回jQuery('document').ready(function(){ jQuery("#submit_btn").click(function(){ jQuery.ajax({ url: ajaxadmin.ajaxurl, data: {'action':'get_my_option', 'test':'test'}, type: "POST", success: function(response){ } }); }); }); 代码。

2 个答案:

答案 0 :(得分:0)

脚本入队和本地化需要在wp_enqueue_scripts动作钩子中进行:

function so_34632421_enqueue_scripts() {
    wp_enqueue_script( 'broadcast-ajax-request', get_template_directory_uri() . '/js/global.js', array( 'jquery' ) );
    wp_localize_script( 'broadcast-ajax-request', 'ajaxadmin', array('ajaxurl'=> admin_url( 'admin-ajax.php' )));
}
add_action('wp_enqueue_scripts', 'so_34632421_enqueue_scripts');

了解更多in the Codex

答案 1 :(得分:0)

这绝对是一个迟到的回复,但希望它可以帮助某人。

当您本地化Wordpress管理员ajax网址时,您正在设置一个由Wordpress插入到您的网页中的变量:

/* <![CDATA[ */
var bookingajax = {"ajax_url":"http:\/\/localhost:8888\/wp-admin\/admin-ajax.php"};
/* ]]> */

当使用admin-ajax.php是插件的后端时,adminajax变量设置如下:

var ajaxurl = '/gss/wp-admin/admin-ajax.php',

检查ajax网址是否已本地化的最佳方法是将已设置的变量打印到控制台。

在我的示例中,我使用bookingajax设置了本地化的admin-ajax.php。

如果您使用console.log(bookingajax)打印此变量,您将看到它现在存储在javascript对象中。

这是解决方案!

在上面的示例中,您仍在使用adminajax变量。您需要添加在前端存储的变量中设置的下划线。

var ajaxurl = bookingajax.ajax_url;

jQuery.ajax({
        url: ajaxurl,
        data: {'action':'get_my_option', 'test':'test'},
        type: "POST",
        success: function(response){
        }
    });