【发布时间】:2013-10-22 14:35:45
【问题描述】:
我已经在我的 wp 主题中设置了基本的 wordpress ajax 示例。触发器是由modernizr.js 检查页面上的媒体查询产生的。
jQuery(document).ready(function($) {
if(Modernizr.mq('only all and (max-width:6300px)')) {
var data = {
action: 'my_action',
whatever: ajax_object.we_value // We pass php values differently!
};
// We can also pass the url value separately from ajaxurl for front end AJAX implementations
jQuery.post(ajax_object.ajax_url, data, function(data) {
$("#trending-Container").html(data).fadeIn(1000);
});
}
});//end function
我已将我的脚本本地化并排入队列。
wp_enqueue_script('mainJS', get_template_directory_uri() . '/js/mainJS.js', array("jquery") );
wp_localize_script( 'mainJS', 'ajax_object',
array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'we_value' => 1234 ) );
最后处理请求的函数是:
add_action('wp_ajax_my_action', 'my_action_callback');
add_action('wp_ajax_nopriv_my_action', 'my_action_callback');
function my_action_callback() {
global $wpdb;
$whatever = intval( $_POST['whatever'] );
$whatever += 10;
echo $whatever;
die();
}
这总是给我一个 0 的响应(没有属性),我不知道为什么。 P.S 这都是本地的。
Status code 200
Host:lart.co.uk
Origin:http://lart.co.uk
Referer:http://lart.co.uk/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/28.0.1500.71 Chrome/28.0.1500.71 Safari/537.36
X-Requested-With:XMLHttpRequest
Form Dataview sourceview URL encoded
action:my_action
whatever:1234
【问题讨论】:
-
你能查一下
exit(intval( $_POST['whatever'] ));吗? -
@RecoveringSince2003 你的意思是不是 die()?我试过了,还是没有。
-
尝试
print_r($_POST);die();以确保$_POST不为空,包含该值。 -
还是0,我删除了所有my_action_callback()函数,它响应为0。函数处理程序不是被add_action触发的吗?
-
它应该根据您发布的代码触发。
标签: javascript php jquery ajax wordpress