Apache 上的 CORS 304

Apache 上的 CORS 304

我有一个 REST API,它返回304 Not Modified某些请求的状态代码(具有 If-Modified-Since 标头)。问题是 apache2 软件在将响应发送到浏览器之前会删除任何 CORS 标头。

仅当状态代码为 时才会发生这种情况304。任何其他端点都可以与 CORS 很好地配合使用。所有飞行前请求也都运行良好。

我在网上看到 Apache 这样做是为了遵守某些规范,但我无法相信 304 的 CORS 不应该在规范中起作用。

有没有办法可以用 apache 实现这个目标?

更新:

我的 javascript 是

var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://api.domain.com/api/endpoint?token='+localStorage.getItem('token'));
xhr.setRequestHeader("If-Modified-Since", "Mon, 11 Jan 2016 15:46:54 GMT");
xhr.send(null);

我收到一个错误:

所请求的资源上不存在“Access-Control-Allow-Origin”标头。Origin'http://xxx.域名.com' 因此不允许访问。

答案1

304 无需包含 CORS 标头。浏览器应该能够看到 304 并使用缓存。

https://bz.apache.org/bugzilla/show_bug.cgi?id=51223#c1

CORS 不需要在 304 上添加这些标头,而且浏览器确实可以在没有这些标头的情况下工作。这是因为许多 304 是由无法更新以了解 CORS 的中间缓存生成的。

相关内容