总结:Safari 报告 304 响应,即使它在 XHR 请求上收到 200
你好 - 我在 Safari 上遇到了一个奇怪的情况,我已经走到尽头试图自己研究它,我希望这里有人过去遇到过这种情况。
我目前已经开始在 Safari 中使用我的应用程序(一个厚的 Sencha Touch 客户端与 NodeJS 提供的 RESTful API 对话),并注意到浏览器偶尔(实际上:大约 6 次中有 5 次)错误处理服务器响应,并报告它们(在开发人员工具网络控制台中)作为没有内容的 304 响应,而不是实际交付的 200 具有 JSON 内容的响应。 (并且应用程序会相应地运行 - 无内容 304 响应导致应用程序假设它没有数据,并且它以这种方式响应,因此这不仅仅是开发人员面板中的外观问题。)
header 甚至不正确 - 这是 Safari 针对这两种情况报告的一组不相交的 Response header (我已经确认请求内容和 header 对于两者是相同的):
200
304
(我省略了两者之间相同的响应 header 。)
其他一些注意事项
版本
最佳答案
伟大的研究工作。您看到的是 Ajax 重定向,通常您在大多数开发人员工具中都看不到它,但它确实发生了。理想情况下,它应该对您的应用程序没有影响,在您的问题中,我没有看到您报告任何问题或错误只是更多的请求。
这种重定向是在浏览器级别处理的,因此您无能为力(我过去曾尝试过,但无能为力)。
顺便说一句,这不是 Sencha 问题,而是 Ajax 的行为方式。
希望能帮助到你
关于xmlhttprequest - Safari 默默地将 200 个对 AJAX 请求的响应转换为 304s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8546719/