iPhone端外部JS脚本无法加载问题求助
检查Safari隐私与内容阻止设置
打开iPhone的「设置」→「Safari浏览器」,查看是否开启了「阻止跨站跟踪」「阻止所有Cookie」,或者安装了第三方内容阻止器(如AdGuard)。这些设置可能自动拦截脚本,导致开发者工具显示脚本被删除。临时关闭这些功能后再测试脚本加载情况。验证脚本的MIME类型配置
服务器返回wt.js时,必须设置正确的Content-Type响应头为application/javascript(或text/javascript)。Safari对资源的MIME类型校验比其他浏览器严格,类型不匹配会直接拒绝加载。可以通过开发者工具的「网络」面板查看该脚本的响应头,确认MIME类型是否正确。排查服务器端的UA过滤规则
检查服务器配置(如Nginx、Apache配置文件或后端代码),是否存在根据User-Agent判断设备类型,对iPhone/iOS UA返回空脚本或拦截请求的逻辑。临时移除针对iOS的限制规则,再测试加载情况。清除Safari缓存与网站数据
iPhone的Safari缓存可能保留了旧的错误响应。进入「设置」→「Safari浏览器」→「清除历史记录与网站数据」,或者在网站页面长按刷新按钮选择「重新加载并清除缓存」,之后再尝试加载脚本。检查混合内容限制
如果网站使用HTTPS协议,确保脚本URL也是HTTPS(而非HTTP)。Safari会自动阻止HTTPS页面中的HTTP资源加载,即使添加了域名,协议不匹配也会被拦截。测试脚本内容的Safari兼容性
尝试将原脚本替换为一段简单测试代码(如console.log('test')),如果能正常加载,说明原脚本存在Safari不兼容的语法或API,需要进行转译或修改。
内容的提问来源于stack exchange,提问作者Alexandru Muhai

