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

时间:2015-11-17 21:00:12

标签: jquery json ajax google-chrome firefox

在firefox中一切正常,所有数据都返回一个值,但在chrome上,它们都是未定义的。 我试图用一个简单的字符串返回ex来清空我的函数。 ' ASD'这仍然是未定义的。 在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'
            )
    );
}

}

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

代替

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