Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

使用 Access-Control-Max-Age 来缓存 CORS 配置

  之前对 CORS 了解不够透彻,一直以为浏览器的 CORS 在 PUT、DELETE 等这些特殊方法下自动发起的 OPTIONS 方法是无法缓存的。虽然它确实不吃 Cache-Control,但 CORS 有 Access-Control-Max-Age 确实可以用于 CORS 相关配置的缓存。
  下面使用 PHP 写了这个测试代码
<!-- http://localhost -->
<?php
header('Access-Control-Allow-Origin: http://localhost');
header('Access-Control-Allow-Methods: DELETE');
header('Access-Control-Max-Age: 3600');
?>
<script>
with(new XMLHttpRequest)
  open('DELETE', 'http://127.0.0.1/test.php'),
  send();
</script>
  由于设置了 Max-Age,所以这里的 DELETE 只会在首次请求时发起一个 OPTIONS。如果没有设置这个,将会在每次发起 DELETE 请求前发起一个 OPTIONS 方法。
  但是这东西也会有坑,比如 Chrome 的控制台要是勾起这货就不会缓存,于是调试的时候各种无法重现。
  总之能用就行,不要在意细节。反正我是被这个控制台坑了好久,这是个悲伤的故事。
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^