首页 > 解决方案 > 使用 wp_ajax 拨打电话时,我在 Wordpress 中遇到 400 Bad request 错误

问题描述

我正在一个 Wordpress 项目中工作,我想在我的网站中通过 ajax 加载一些东西。我正在通过 ajax 加载许多部分,但我以前从未遇到过错误。在这里,我也在做应该做的一切,但我不知道为什么会收到 400 bad request 错误。这是代码:

 if(!function_exists('enque_this')){
 function enque_this(){
    wp_enqueue_style( 'style-name', MY_PLUGIN_LOCATION.'css/style.css');
    wp_enqueue_script('my_script_file',MY_PLUGIN_LOCATION.'js/md-referral.js','jQuery','',true);
    wp_localize_script('my_script_file','ajax_object',array('ajax_url' => admin_url('admin-ajax.php'),'we_value'=>1234));
 }}
 add_action('wp_enqueue_scripts','enque_this');
   if(!function_exists('enque_single_prod_page')){
     function enque_single_prod_page(){
        wp_enqueue_script('my_script_file_2nd',MY_PLUGIN_LOCATION.'js/md-single.js','jQuery','',true);
        
     }}
      add_action('wp_enqueue_scripts','enque_single_prod_page');

function how_much_dis(){

        echo 'really .. . .!!! i Got SomeTHing ??';
};

add_action('wp_ajax_how_much_dis','how_much_dis');

jQuery代码

jQuery(document).on("click","#submit_reff_code",function(){
    
    var codes = jQuery("#input_reff_code").val(); 
    var button_text = jQuery("#submit_reff_code").val("Please Wait . . .");
    var is_disabled = jQuery('[name="add-to-cart"]').prop('disabled');
    var product_id = jQuery('[name="add-to-cart"]').val();
    var variation_id = jQuery('[name="variation_id"]').val();


        if( codes != "" &&  codes.length > 2 && is_disabled == false && jQuery.isNumeric(product_id)){

            var data = {
                'action' :  'how_much_dis',
                'product_id_from_prod' : product_id,
                'variation_id_from_prod': variation_id,
                'code'       : codes
            };
            jQuery.post(ajax_object.ajax_url, data , function(response){
                
                    console.log(response);  

            });

        }else{
            alert("please enter valid code");
        };




});

谢谢你的帮助,thanxx

标签: javascriptphpjquerywordpress

解决方案


400 表示操作错误。问题中的代码应该在用户登录时工作。要使其在用户未登录时工作,您必须添加该行

add_action('wp_ajax_nopriv_how_much_dis','how_much_dis');

也许这就是原因。


推荐阅读