在服务器端,我在apache中有以下过滤器,默认情况下允许所有方法和所有起源
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
使用angular $http一篇文章成功了,但另一篇失败了。失败的请求与同一apache上的另一个应用程序对话。
Cross-Origin Request Blocked: The Same Origin Policy disallows
reading the remote resource at http://localhost:..
(Reason: CORS header 'Access-Control-Allow-Origin'
does not match 'http://localhost:8100, http://localhost:8100').
但是响应头确实包含ACAO
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
access-control-allow-credentials: true, true
access-control-allow-origin: http://localhost:8100, http://localhost:8100
Vary: Origin
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 22 Oct 2015 04:35:29 GMT
' http://localhost:8100, http://localhost:8100'从何而来?你认为这是angular $http还是Apache的问题?
Access-Control-Allow-Origin
接受'*'
或单个来源作为其值。不能用逗号分隔列表
浏览器正在匹配原点(http://localhost:8100
与http://localhost:8100, http://localhost:8100
),但没有得到匹配。
你们之前的线路也有类似的问题。看起来您正在运行代码来插入CORS头两次。