在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'
)
);
}
}
答案 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