我试图理解Tomcat的CORS过滤器,但我对cors.exposed.header有问题。
如何使用 Ajax 将预检标头添加到我的 Restful 网络服务?例如,我尝试了X-PINGOTHER Header。
$.ajax({
url : domain + "/rest/businessCards" ,
type: 'POST',
beforeSend: function(xhr) {xhr.setRequestHeader('content-type','application/json');},
beforeSend: function(xhr) {xhr.setRequestHeader('X-PINGOTHER', 'pingpong');},
dataType: "json",
data : test,
contentType: 'application/json',
[...]
});
这行不通。
我总是从浏览器收到 OPTION 预检请求的状态代码 403。
我应该在我的 web.xml 文件中添加什么?
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Headers</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我的配置是否正确?
我的示例引用了此页面:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Preflighted_requests
据我所知,您遇到了 CORS 问题。我不知道您是否可以在服务器中执行此操作,但我会尝试添加值为 *
的 Access-Control-Allow-Origin
HTTP 标头。您可以在此处找到有关如何在 Apache 中实现此目的的更多信息: https://enable-cors.org/server_apache.html