我在调试我正在编写的插件时遇到问题。我想在用户更改select输入的选项时执行Ajax请求。事情是,它昨天完全按照预期工作,然后当我今天测试网站时(从昨天起,没有进行任何代码更改),我得到一个:
领域com/wp-admin/admin-ajax。php 400(错误请求)
我的Chrome控制台中的消息。如果我在Internet Explorer/FireFox中尝试,它不会在控制台中给出错误,但Ajax请求仍然不起作用。
我正在创建的插件是一个DigitalOcean droplet,它是使用WordPress的一键应用程序制作的。
下面是我在ajax插件上使用的基本代码:
//This is in a class\' constructor method
add_action(\'wp_enqueue_scripts\', array($this, \'plugin_prefix_scripts\'));
//PLUGIN_URL is a constant created earlier in the plugin
public function plugin_prefix_scripts() {
wp_enqueue_script(\'plugin_prefix_scripts\', PLUGIN_URL . \'scripts/frontend_script.js\');
wp_localize_script(\'plugin_prefix_scripts\', \'js_object\',
array(
\'ajax_url\' => admin_url(\'admin-ajax.php\')
)
);
}
frontend\\u脚本。js公司:
$(\'#plugin-prefix-option-one, #plugin-prefix-option-two\').on(\'change\', function() {
var data = {
\'action\': \'plugin_prefix_page_change\',
\'option_val\': \'some_val\',
}
$.post(js_object.ajax_url, data, function(response) {
console.log(response);
});
回到课堂上:
add_action(\'wp_ajax_plugin_prefix_page_change\', array($this, \'plugin_prefix_page_change\'));
public function plugin_prefix_page_change() {
$arr = array(1, 2, 3, 4, 5);
wp_send_json($arr);
//I\'ve also tried wp_die() and no die call at all but same outcome
die();
}
我不确定如何进一步调试。非常感谢您的帮助。
谢谢