使用 ajax 和 Tomcat 的 RESTful 服务中的 http 预检标头与 cors.preflight.h



我试图理解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

最新更新