apache - 未设置 CORS header

标签 apache .htaccess http cors browser-cache

我正在尝试从另一个域下载静态文件。在我的 .htaccess 文件中,它位于根目录中:

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Accept, If-Modified-Since, Origin"
Header set Access-Control-Allow-Methods "GET, OPTIONS"

这是浏览器两次下载资源的请求-响应周期:

GET /file HTTP/1.1
Host: www.example.com
Accept: application/json
Origin: http://www.mydomain.com

HTTP/1.1 200 OK
Date: Sat, 07 Sep 2013 21:01:35 GMT
Server: Apache
Last-Modified: Sat, 07 Sep 2013 20:14:45 GMT
Content-Length: 2
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Accept, If-Modified-Since, Origin
Access-Control-Allow-Methods: GET, OPTIONS
Content-Type: application/json

[]

GET /file HTTP/1.1
Host: www.example.com
Cache-Control: max-age=0
Accept: application/json
Origin: http://www.mydomain.com
If-Modified-Since: Sat, 07 Sep 2013 20:14:45 GMT

HTTP/1.1 304 Not Modified
Date: Sat, 07 Sep 2013 21:01:40 GMT
Server: Apache

第二次您可以看到,由于文件未被修改,服务器响应 304 Not Modified。为什么没有为第二个响应设置 CORS header ?

最佳答案

这是一个 apache 错误,见下文

https://issues.apache.org/bugzilla/show_bug.cgi?id=51223

如果您有勇气,可以使用补丁重新编译 Apache....

关于apache - 未设置 CORS header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18678096/

相关文章:

php - 推送通知如何工作?

svn - 为什么 VisualSVN 服务器会重写我的 URL?

django - 如何将 django-compressor 与 apache 一起使用?

Azure AD 阻止添加 HTTP 回复 URL

Java - javax.websocket.Session 和 javax.servlet.http.HttpSession 使用相同的 JSESSIONID 吗?

apache - 安装 www 和非 www ssl 证书 apache

.htaccess 子域的通配符 SSL

php - 当项目位于子目录中时,.htaccess 文件无法正确重写 URL

php - 如何使用 .htaccess 而不是 VHost 将文档根目录设置为子目录

php - 使用带有 curl php 示例的 VBA 将 HTTP 发布到 Web 服务