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

Safari是否支持针对XMLHttpRequest的Link rel=preload请求头?

同源XMLHttpRequest在Safari中无法复用预加载资源的问题

我正尝试优化某网页的加载速度,该网页通过XMLHttpRequest从同源加载JSON数据。我已在网页响应中添加了Link HTTP请求头,配置如下:

Link: </api/endpoint>; rel=preload; as=fetch; crossorigin

此配置在Chrome中运行正常:API端点仅被请求一次(基于预加载指令),且能被XMLHttpRequest复用。

但在Safari中无法正常工作:API端点会被请求两次(一次来自预加载指令,一次来自XMLHttpRequest),同时控制台出现如下警告:

[Warning] The resource https://my-origin.com/api/endpoint was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it wasn't preloaded for nothing.

我尝试过多种Link请求头变体(不含crossorigin、含crossorigin=use-credentials),也为XHR对象设置了withCredentials=true,但均无效果。

我查阅相关资料了解到,使用mode: "no-cors"可预加载fetch请求,但XMLHttpRequest无法设置该模式。

请问能否在Safari中预加载同源XMLHttpRequest?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:11:36