插件设置页面中的AJAX返回400个错误请求

时间:2018-03-24 作者:b101

我读了很多问题,并从抄本上复制了我的代码,但仍然没有成功。当我点击提交按钮时,我收到以下错误消息:

enter image description here

我的php函数和JS如下所示:

function enqueue_admin_settings_js($hook) {
  global $bblm_settings;

  if ( $hook != $bblm_settings )
    return;

  wp_enqueue_script(\'admin_settings_js\', plugin_dir_url( __FILE__ ).\'admin_settings.js\', array(\'jqQ\'));

}
add_action(\'admin_enqueue_scripts\',\'enqueue_admin_settings_js\');

function bblm_process_ajax(){
  echo "This is my response";
  var_dump($_POST);
  die();
}
add_action(\'wp_ajax_bblm_results\', \'bblm_process_ajax\');
已使用的jqQ依赖关系是我使用的jquery-3.3.1.min.js但我也试过用wordpress自己的jquery 我仍然会遇到同样的错误。下面是我如何注册和排队脚本:

function enqueue_my_scripts_jq($hook) {
  global $bblm_settings;
  wp_register_script(
    \'jqQ\',
    plugin_dir_url( __FILE__ ).\'jquery-3.3.1.min.js\'
    );

  if ( $hook == $bblm_settings ){
    wp_enqueue_script(\'jqQ\');
    }

}
add_action(\'wp_enqueue_scripts\',\'enqueue_my_scripts_jq\');
add_action(\'admin_enqueue_scripts\',\'enqueue_my_scripts_jq\');
最后是我的JS,它位于文件中admin_settings.js 在上面排队。

$(document).ready(function ($) {
    //alert(\'ready\');
    $(\'#team-form\').submit(function () {
      var data = {
        action: \'bblm_result\',
      };
      $.post(ajaxurl, data, function (response) {
        alert(response);
      });

      return false;
    });
  });
我再次尝试使用jQuery而不是$ 使用Wordpress own时jquery依赖,但这没有什么区别。

PHP代码位于插件的主PHP文件中,只是因为我读过一个旧问题,但事实并非如此,以及它不起作用的原因。这里的情况并非如此。

1 个回复
SO网友:b101

该死!我刚找到它。。。我的JS说action: \'bblm_result\' 但是我的PHP函数正在寻找wp_ajax_bblm_results ... 这是我3小时的搜索

结束

相关推荐

使用AJAX发出POST请求会返回400错误(不使用jQuery)

该网站有一个带有搜索字段和类别复选框的博客页面。搜索某个内容或选中/取消选中某个类别会启动AJAX请求,以根据搜索/类别获取帖子,然后将这些结果填充到页面上的列表中。Currently this functionality works with jQuery, but my attempts to write it in plain JS are failing with 400 errors.以下是对此的jQuery:$.ajax({ url: Knuckle.ajaxurl,