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

iPad端Chrome与Safari无法正常处理Async的response.json()函数

问题分析与解决方案

核心问题定位

你的代码在iPad端执行到await fetch(...)或await response.json()时出现了未被捕获的异常,导致后续代码(包括console.log(json)和doSomething调用)完全终止执行。因为async函数中如果Promise被拒绝且未做错误处理,代码会静默停止运行——这就是为什么只有开头的started日志能输出。

修复步骤

  1. 添加错误捕获逻辑
    给fetchData函数加上try/catch块,捕获并打印错误,这样就能在chrome://inspect里看到具体的失败原因:

    async function fetchData() {
        try {
            console.log('started');
    
            const response = await fetch(checkRep, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({
                    parameter1: 'param1',
                    parameter2: 'param2'
                })
            });
    
            // 先检查请求是否成功
            if (!response.ok) {
                throw new Error(`请求失败,状态码:${response.status}`);
            }
    
            const json = await response.json();
            console.log(json);
            doSomething(json);
        } catch (error) {
            console.error('请求或解析出错:', error);
        }
    }
    
    function doSomething(json) {
        console.log(`${JSON.stringify(json)}<br>this comment should appear now`);
    }
    
  2. 排查常见移动端浏览器问题

    • 跨域(CORS)限制:iPad端浏览器对跨域请求的限制可能更严格,检查服务器是否返回了正确的CORS响应头(比如Access-Control-Allow-Origin),确保允许当前域名发起请求。
    • 请求合法性:确认checkRep变量是合法的完整URL,没有拼写错误,也不存在HTTP/HTTPS混合内容的问题(比如HTTPS页面请求HTTP接口)。
    • JSON格式校验:如果服务器返回的不是合法JSON,response.json()会抛出错误,可在Network面板查看服务器返回的响应体是否符合JSON规范。

调试建议

在chrome://inspect的Network标签页中,查看请求的状态码、响应头和响应体,确认请求是否成功发送到服务器,以及服务器返回的内容是否符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 05:42:22