You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery-Ajax load()方法在iOS Safari中无法显示内容的问题

问题解决:iPhone Safari无法显示load方法加载的内容

你的代码在Mac Safari中能正常将接口返回值加载到span标签,但iPhone Safari里接口返回正确却不显示,大概率是浏览器缓存或DOM执行时机的问题,以下是可行的解决办法:

方法1:禁用请求缓存

iPhone Safari会对GET请求做强缓存,即使接口返回新内容,浏览器也会直接复用缓存数据。可以在请求URL后添加时间戳参数,强制浏览器每次请求新内容:

var auto_refresh = setInterval(function () {
    var id = 800;
    $("#username").load("getuser.php?p="+id+"&t="+new Date().getTime());
}, 5000);

方法2:改用$.get手动更新DOM

jQuery的load方法在移动端Safari可能存在兼容性问题,改用$.get方法手动获取数据并更新DOM,兼容性更稳定:

var auto_refresh = setInterval(function () {
    var id = 800;
    $.get("getuser.php?p="+id+"&t="+new Date().getTime(), function(response) {
        $("#username").html(response);
    });
}, 5000);

方法3:确保DOM加载完成后执行脚本

原代码中脚本写在<html>标签外部,iPhone Safari的DOM解析机制更严格,可能导致脚本执行时目标span还未被创建。把脚本放到<html>内部,并包裹在$(document).ready中:

<html>
<div>
<span class="account-content" id="username"></span>
</div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    var auto_refresh = setInterval(function () {
        var id = 800;
        $.get("getuser.php?p="+id+"&t="+new Date().getTime(), function(response) {
            $("#username").html(response);
        });
    }, 5000);
});
</script>
</html>

优先尝试方法1和方法3的组合,一般就能解决问题。

内容的提问来源于stack exchange,提问作者hatched

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:31:38