我正在尝试如何在Wordpress中正确使用AJAX:(我在其他网站上使用过,但在WP中没有使用过)
我在函数中有这个代码。主题的php:
function jquery_stuff() {
wp_enqueue_script(\'jquery\');
wp_enqueue_script(\'scriptname\', get_bloginfo(\'template_url\') . \'/wibergsweb.js\');
}
add_action( \'init\', \'jquery_stuff\');
//AJAX
add_action(\'wp_ajax_locationContent\', \'locationContent\');
function locationContent() {
echo \'batman returns\';
die();
}
这就是jQuery的外观:
function loadLocationInfo(clickedOn) {
var locationId = clickedOn.next().attr(\'id\');
var locationContent = $.ajax({
type: \'POST\',
data:{
action: \'locationContent\',
location_id: locationId
},
url: "/wp-admin/admin-ajax.php",
dataType: \'json\'
});
locationContent.done(function(data) {
alert(\'DONE\');
});
locationContent.fail(function(ts) {
alert(\'ERROR\');
clickedOn.next(\'.location-info\').html(ts.responseText);
$(\'body\').css(\'cursor\', \'pointer\');
clickedOn.css(\'cursor\', \'pointer\');
});
}
$(document).on(\'click\', \'h3\', function(e) {
var tClicked = $(this);
loadLocationInfo(tClicked);
});
为什么在
fail
-作用(是的,数据返回正确。这是其中奇怪的部分)。
事情就是这样:
1. ERROR is shown in alert-dialog.
2. The .location-info div is set to \'batman returns\'
如果php中没有这样的die():
function locationContent() {
echo \'batman returns\';
}
然后a
0 已返回
BUT 在
done()
-函数(在预期位置返回的数据不正确)
为什么在fail-function 我该如何解决这个问题?(我不知道这里发生了什么事)