如果有 404,则 Apache 不会提供 CORS 标头

Joh*_*unt 5 apache http vhosts cors

我在 MAMP PRO 的 vhost 配置中添加了以下内容:

Header set Access-Control-Allow-Origin "*"
Run Code Online (Sandbox Code Playgroud)

(这是“附加参数”框中的唯一内容)

如果我通过简单地从 vhost 的域加载图像来检查标头,那么效果很好。

如果我尝试访问导致(正确)404 .. 不再设置标头的 URL,则效果不佳。

这是正常的吗?好像不太正常。为什么Apache(或mamp)会因为有404而决定忽略我的“Header set”指令?

从加载图像请求标头:

Host: redacted.dev
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)

加载图像的响应头:

Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Connection: Keep-Alive
Content-Length: 18575
Content-Type: image/jpeg
Date: Wed, 18 Feb 2015 13:27:25 GMT
Etag: "81-488f-50f376cb56b40"
Keep-Alive: timeout=5, max=100
Last-Modified: Mon, 16 Feb 2015 16:53:25 GMT
Server: Apache
Run Code Online (Sandbox Code Playgroud)

尝试访问不存在的内容时请求标头:

Host: redacted.dev
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)

尝试访问不存在的内容的响应标头:

Connection: Keep-Alive
Content-Length: 251
Content-Type: text/html; charset=iso-8859-1
Date: Wed, 18 Feb 2015 13:28:50 GMT
Keep-Alive: timeout=5, max=100
Server: Apache
Run Code Online (Sandbox Code Playgroud)

对这个有点失落...

Mar*_*tin 6

您需要“始终”前缀...

Header always set Access-Control-Allow-Origin "*"
Run Code Online (Sandbox Code Playgroud)