如何修复WordPress ajax请求,状态为400

时间:2019-05-03 12:12:44

标签: jquery ajax wordpress plugins

我花了很多时间寻找解决此问题的方法。我在google和stackexchange上浏览过,但没有得到答案。

所以我正在寻找解决方案,是通过我正在开发的插件发出ajax请求时,我遇到了这个400状态错误。enter image description here 我不知道为什么要得到这个?

1个脚本

function smn_admin_assets($page_now){    
    if( $page_now == "settings_page_smn_notice" ){
        wp_enqueue_style( 'smn-admin-style', plugins_url( "../assets/admin/admin.css", __FILE__ ) );
        wp_enqueue_script( 'smn-admin-js', plugins_url( "../assets/admin/admin.js", __FILE__), array( 'jquery' ), VERSION, true  );        
        $pass_value = array(
            'url'            => admin_url( 'admin-ajax.php' ),
            'cookieNonce'    => wp_create_nonce('cookieNonce')
        );
        wp_localize_script('smn-admin-js', 'smn_ajax', $pass_value );
    }    
}
add_action( 'admin_enqueue_scripts', 'smn_admin_assets' );

2 Ajax请求

$(document).ready(function () {        

    $("#clearCookie").on('click', function(){
        var clearCookie = $('#clearCookie').val();
        // Ajax Call
        $.ajax({
            url : smn_ajax.url,
            type : 'POST',
            data : {
                action : 'smn_clear_cookie',
                clearcookie : clearCookie
            },
            success : function( response ) {
                alert('Hello');
            },
            error: function () {
                alert(smn_ajax.url);
            }
        });

        return  false;
    });
});

3 Ajax处理

function smn_clearCookie(){

    $clearCookie = $_POST['clearCookie'];
    var_dump($clearCookie);

    die();
}
add_action( 'wp_ajax_smn_clear_cookie', 'smn_clearCookie' );
add_action( 'wp_ajax_nopriv_smn_clear_cookie', 'smn_clearCookie' );

让我知道为什么我会收到此错误; 谢谢您的宝贵时间。

1 个答案:

答案 0 :(得分:0)

400错误表明我们正在传递错误参数。我认为:

var clearCookie = $('#clearCookie').val();

可以为空。您可以检查何时在#clearCookie处分配一个值。