我有一个前端Ajax调用设置,可以在按下按钮时随机化图像。我把它设置如下:
的functions.php
function parallax_randomize(e)
{
var data = {
'action': 'randomize_parallax',
'dataType': 'json'
};
console.log(theme_vars.ajax_url);
jQuery.post(theme_vars.ajax_url, data, function(response) {
console.log(response);
var dynb = JSON.parse(response);
jQuery('#front-location span').html(dynb.location);
jQuery('.parallax-slider').fadeOut('fast', function () {
jQuery('.parallax-slider').attr('src', dynb.url);
jQuery('.parallax-slider').fadeIn('fast');
});
});
}
root.js
class Dynb
{
function Dynb()
{
...
$this->set_up_ajax();
...
}
public function set_up_ajax()
{
add_action('wp_ajax_randomize_parallax', array($this, 'randomize_parallax'));
}
public function randomize_parallax()
{
$data = set_dynamic_background(true);
echo json_encode($data);
wp_die();
}
}
new Dynb();
动态背景回调
// Generate a version 3 (name-based and hashed with MD5) UUID object
$uuid3 = Uuid::uuid3(Uuid::NAMESPACE_DNS, 'php.net');
$uuid = $uuid3->toString();
在Firefox中,这很好用,但在Chrome中,我的JS Ajax调用返回0.我不能为我的生活找出问题所在。任何人吗?
答案 0 :(得分:0)
只需在randomize_parallax()函数中添加exit(),我认为它会解决你的问题
答案 1 :(得分:0)
从前端发送ajax请求时,如果您希望这样做,则需要包含具有wp_ajax_nopriv_ ...(如下所示)的操作。如果您不添加该操作,则未登录的用户将无法调用ajax功能。
add_action('wp_ajax_nopriv_randomize_parallax', array($this, 'randomize_parallax'));