我正在尝试在 WordPress 上进行 AJAX 调用,但根本无法使其正常工作。我查看了其他一些答案,它们必须具有一定的相关性,因为这显然是同一个问题,但在我的情况下;我不知道出了什么问题。
这是我在页面上包含的代码。
PHP 包含在 require 中,并且绝对运行良好。JavaScript 也被正确包含,因为它返回了一些东西(只是不正确的东西)。
JS
jQuery(document).ready(function($) {
$('.button').on('click', function(e) {
e.preventDefault();
$.ajax({
url: MY_PLUGIN.ajax_url,
type: 'POST',
data: {
action: 'add_person',
data: 'john smith'
},
success: function(data) {
console.log(data);
}
});
});
});
PHP
function add_a_person() {
$data = array('abc' => 'xyz');
wp_send_json($data);
}
add_action('wp_ajax_add_person', 'add_a_person');
我知道目前我的 PHP 函数没有做任何事情,但我希望如果我能只返回一个简单的词,至少它是链接起来的。
我只是不明白我在这里做错了什么。为什么页面标记(HTML)被返回给我而不是我定义为要发送的数据?
首先,您的函数名称和操作名称不匹配:
add_action('wp_ajax_add_person', 'add_a_person');
应该:
add_action('wp_ajax_add_person', 'add_person');
并尝试添加前端未记录的操作:
add_action('wp_ajax_nopriv_add_person', 'add_person');
另外,在使用 wordpress ajax 时不要使用return
而是使用echo
function add_a_person() {
// Just return this to test for now
echo "hello";
}
这就是说,正如我最近也被告知你应该考虑使用 WP REST API,因为它更容易和更干净
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句