为什么wp_ajax挂钩不起作用?

时间:2020-01-27 作者:Predaytor

我需要使用POST方法从Ajax表单执行Php函数。有没有其他方法代替ajax挂钩?

挂钩不执行。始终返回0。怎么了?

enter image description here

enter image description here

这是我的ajax。js公司

\'use strict\';

const url = test.ajaxUrl;
const data = { 
  action: \'ajax_request\',
  username: \'example\' 
};

async function Start(url, data) {
  try {
    const response = await fetch(url, {
      method: \'POST\',
      body: JSON.stringify(data),
      headers: {
        \'Content-Type\': \'application/json\'
      }
    });
    const json = await response.json();
    console.log(\'Success:\', JSON.stringify(json));
  } 
  catch (error) {
    console.error(\'Error:\', error);
  }
}

Start(url, data);
功能。php

add_action( \'wp_enqueue_scripts\', \'enqueue_my_frontend_script\' );

function enqueue_my_frontend_script() {
        wp_enqueue_script( \'script-ajax\', get_template_directory_uri() . \'/assets/js/ajax.js\', array(), null, true );
    $variables = array(
        \'ajaxUrl\' => admin_url( \'admin-ajax.php\' )
    );
    wp_localize_script(\'script-ajax\', "test", $variables);
}

function handle_ajax_request(){
    $postData = file_get_contents(\'php://input\');
    $data = json_decode($postData);

    echo json_encode($data);
    die();
}

add_action("wp_ajax_ajax_request" , "handle_ajax_request");
add_action("wp_ajax_nopriv_ajax_request" , "handle_ajax_request");

1 个回复
最合适的回答,由SO网友:BenB 整理而成

您可以添加WordPress Rest API自定义端点Docs

相关推荐

400 wp_ajax中基于设置为FALSE或TRUE的ProcessData的错误请求和非法调用

作为Salamu Alaikum,我在工作wp_ajax 并尝试通过ajax上传文件。当我processData: true 它返回错误illegal invocation 文件上载时。但当我设定processData: false 它返回错误400 bad request. 但是,我再次检查了PHP是否一切正常。But if I do not upload file all data get saved successfully. 这是我的表格。。。 <form action=\"\" metho