Ajax适用于Firefox,但不适用于Chrome



在firefox中一切都很好,所有数据都返回一个值,但在chrome上,它们都是未定义的。我试图只用一个简单的字符串返回ex来清空我的函数。"asd",但它仍然返回Undefined。正在进行wordpress。

$('.vote-synergy-up, .vote-synergy-down').click(function(){
    var data_synergy = $(this).parent('.vote-synergy-container').attr('data-synergy'); /*PK SYNERGY*/
    var VoteType = '';
    var OtherVoteType = '';
    if ($(this).hasClass('vote-synergy-up')){
        VoteType = 'Up';
        OtherVoteType = 'Down';
    }
    if ($(this).hasClass('vote-synergy-down')){
        VoteType = 'Down';
        OtherVoteType = 'Up';
    }
    // This does the ajax request
    $.ajax({
        type: "POST",
        url: omvp_ajax.ajax_url,
        dataType: 'json',
        data: {
            'action':'synergy_vote',
            'pk_Synergy' : data_synergy,
            'VoteType' : VoteType
        },
        success:function(data) {
            alert(data.Test)
        },
        error: function(errorThrown){
            alert('An error as occured');
            console.log(errorThrown);
        }
    });  
});

这是我的功能

function synergy_vote() {
if ( isset($_REQUEST) ) {
    echo json_encode(
        array(
            'Test'=>'ASD'
            )
    );
}

}

更换

add_action( 'wp_ajax_synergy_vote', 'synergy_vote' ); // It called from the back end

add_action( 'wp_ajax_nopriv_synergy_vote', 'synergy_vote' );    // If called from front end

尝试解析从服务器返回的JSON。

success:function(data) {
    var d = $.parseJSON(data);
    alert(d.Test);
},

最新更新