嗨,我知道这个问题已经被问过几次了,但是我已经把每个答案都试过了,都没有运气。
我正在尝试在Wordpress前端页面中使用Ajax,我在页面中设置了安全性,以确保用户在登录之前也可以查看此页面。
无论我输入什么代码,我的ajax调用总是返回0。
function ajaxfoodlookup()
{
echo "ajax fired";
die();
}
add_action('wp_ajax_nopriv_ajaxfoodlookup','ajaxfoodlookup');
add_action('wp_ajax_ajaxfoodlookup','ajaxfoodlookup');
这是我在我的函数。php(我也试过exit();然后die($results) where $results = 'ajax触发';
这是我在页面中调用ajax的内容;
jQuery.ajax({
url: '/wp-admin/admin-ajax.php',
type: 'POST',
data: { action:'ajaxfoodlookup'},
success: function (data) { alert(data);}
});
唯一的事情,我有不同的其他问题/答案在这里是,我正在使用一个购买的主题,其中有一些代码添加,是主题能够劫持我的ajax调用?我认为wordpress会根据提供的数据中的"动作"执行ajax调用?
请帮帮我,这让我发疯了?
谢谢
官方推荐使用ajaxurl
变量而不是硬编码变量。将此插入到JS代码之前,并将jQuery.ajax
的url
更改为使用ajaxurl
。
<script type="text/javascript">
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
</script>
您也可以使用wp_localize_script来定义ajaxurl