Wordpress ajax不断失去连接



我很抱歉,我只是一个新手在WP和ajax,但我需要你的帮助。我不确定这是一个错误,还是只是我没有办法找到解决方案。

我有以下情况。

我有一个插件,显示从远程mysql服务器的某些数据。这些数据需要定期更新。

目前,我已经通过AJAX实现了这一点,或多或少,像这样:

$.ajax({
    type : "POST",
    url: cktn_ajax_object.ajax_url,
    data: params,
    dataType: "json",
        success: function(response) {
        << Update  UI according to response >>
    },
    error: function(request, status, err) {
        console.debug("[AjaxOnTimer Error] status: " + status);
    }
});

其中$.ajax调用负责检索远程mysql数据的相关php脚本。PHP脚本的持续时间是可变的,这取决于它所获取的数据量(比如,从几秒到四五分钟)。

如果我在本地机器上测试整个程序,则没有问题。ajax调用适时而耐心地等待本地 PHP服务器(它正在查询远程 mysql服务器)的(缓慢的)响应,并最终在完成后更新我的UI。

另一方面,当我在生产机器上安装插件时,事情不会像预期的那样工作。在向PHP服务器发出ajax调用几秒钟后,我在浏览器的控制台中得到以下错误:

加载资源失败:连接丢失。——> admin-ajax.php

,我的脚本失败了,除了ajax调用的'status'参数中的单词error之外,没有其他线索。

显然是心跳。锁柱干扰了我的ajax调用。知道我哪里做错了吗?

将以下代码添加到functions.php中以关闭心跳:

add_action( 'init', 'my_deregister_heartbeat', 1 );
function my_deregister_heartbeat() {
    global $pagenow;
    if ( 'post.php' != $pagenow && 'post-new.php' != $pagenow )
        wp_deregister_script('heartbeat');
}

不确定您的问题是否解决了。但如果有人遇到同样的问题今天,我已经解决了这个使用心跳控制插件可用在这里:https://wordpress.org/plugins/heartbeat-control/.

相关内容

  • 没有找到相关文章

最新更新