![](/img/trans.png)
[英]jquery ajax post works fine in IE, FF, Chrome but not Safari
[英]Wordpress Ajax Request returns 0 in chrome, works fine in FF
我設置了前端Ajax調用,以便每當按下一個按鈕時隨機化圖像。 我將其設置如下:
Functions.php
define("AJAX_URL", admin_url('admin-ajax.php'));
add_action("wp_enqueue_scripts", "enqueue_eyewebz_scripts");
function enqueue_eyewebz_scripts()
{
wp_enqueue_script("jquery");
...
wp_enqueue_script("root-js", JS_URL . "/root.js", array("jquery"));
$script_params = array(
'ajax_url' => AJAX_URL
);
wp_localize_script('root-js', 'theme_vars', $script_params);
}
root.js
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');
});
});
}
動態后台回調
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();
在Firefox中,這很好用,但是在Chrome中,我的JS Ajax調用返回0。我一生都無法找出問題所在。 任何人?
只需在randomize_parallax()函數中添加exit(),我認為它將解決您的問題
從前端發送ajax請求時,如果要執行此操作,則需要包括一個具有wp_ajax_nopriv_ ...的操作(如下所示)。 如果您不添加該操作,則未登錄的用戶將無法調用ajax函數。
add_action('wp_ajax_nopriv_randomize_parallax', array($this, 'randomize_parallax'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.