【问题标题】:AJAX load function not working with some requestsAJAX 加载功能不适用于某些请求
【发布时间】:2013-09-02 20:48:50
【问题描述】:

我有一个允许用户将服务器域添加到数据库的 php 脚本。

在将其添加到数据库之前,会检查该服务器/域是启动还是关闭。将其插入数据库后,我使用 php 标头函数重定向回一个 php 页面,该页面通过 jQuery 加载函数获取服务器列表。问题是当服务器关闭(超时)时,当它使用加载功能重定向回页面时,它不会加载服务器列表。

下面的脚本和目标 div 都出现在页面上。当我通过 Chrome 控制台检查时,它没有显示对 server_list 的任何请求。

我如何加载服务器列表:

<script type="text/javascript">
    $(document).ready(function () {
        $("#server_table").load("server_list.php #servers");
        var refreshId = setInterval(function () {
            $("#server_table").load("server_list.php #servers");
        }, 3000);

    });
</script>

同样,这在大多数情况下都有效,无需更改代码。所以我不知道为什么当服务器关闭时,页面上什么也没有显示。

欢迎提出任何想法/建议!

编辑添加:当加载功能不起作用时,如果我通过单击重新加载重新加载页面,它可以正常工作(包括服务器/域)。如果我只是通过单击 URL 栏并按 Enter 来刷新页面,则它不起作用。

【问题讨论】:

  • 有点困惑,但想到了浏览器缓存。我会从load 切换到ajax,所以你有更多选择然后添加cache: false

标签: php jquery ajax


【解决方案1】:

可能 php 在尝试连接服务器时被阻塞,因此后续的 ajax 请求没有得到响应。

检查您的开发者控制台网络选项卡,看看 3 秒后会发生什么,它得到响应还是超时?

您有时可以通过执行session_write_close(); 来防止 php 阻塞,会话变量仍然可以读取,然后您可以同时运行 php 脚本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 2020-02-27
    • 1970-01-01
    • 2018-09-24
    • 2015-02-25
    • 2023-01-16
    相关资源
    最近更新 更多