存在CORS标头的跨源请求被阻止

时间:2015-10-22 15:35:47

标签: angularjs apache cross-domain httprequest

在服务器端我在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:8100http://localhost:8100”来自哪里?你认为它是角$ http或Apache问题吗?

1 个答案:

答案 0 :(得分:2)

Access-Control-Allow-Origin接受'*'来源的值。你不能在那里放一个以逗号分隔的列表。

浏览器匹配原点(http://localhost:8100http://localhost:8100, http://localhost:8100匹配且未获得匹配。

之前你遇到过类似的问题。看起来您正在运行代码以插入两次CORS标头。