我正在尝试使用XHR从我自己的服务器加载3个资源(.js文件)。在3个资源中,使用适当的CORS标头成功加载2个。然而第三个失败了。在Chrome开发者工具中,我看到HTTP GET请求,对于此资源,但状态显示为200,我只在控制台中看到错误。
XMLHttpRequest无法加载。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' https://origin_host_name'因此不允许访问。
Chrome开发者工具似乎无法显示转机前请求(即OPTIONS)。无论如何都要弄清楚为什么请求只对其中一个资源失败了?
在服务器端,我使用的是CORS过滤器 - https://bitbucket.org/thetransactioncompany/cors-filter。
在web.xml中进行了以下设置
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>cors.allowOrigin</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET,HEAD</param-value>
</init-param>
<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.exposedHeaders</param-name>
<param-value>X-CSRF-Token, token</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>