403使用AJAX进行PUT和DELETE时的状态(禁止)

我使用JAX-RS(Jersey 2.0)实现了一个小型REST API,我使用AJAX来调用API,GET和POST工作正常但是当我调用任何PUT或DELETE方法时,我得到的是以下内容错误信息:

无法加载资源:服务器响应状态为403(禁止)

以下是Java中DELETE方法的示例:

@Path("/deleteSomething") @DELETE @Consumes("application/json") public void delete(String json) throws ParseException { JSONParser parser = new JSONParser(); Object obj = parser.parse( json ); JSONObject object=(JSONObject)obj; String id = (String) object.get("id"); System.out.println("ID : " + id); //DO SOMETHING HERE } 

这是使用AJAX的Javascript调用:

 function deleteSomethingAjax() { $.ajax({ url: API_URI + "/deleteSomething", //API_URI is the API's uri contentType : 'application/json', data: idToJSON(), // this function just returns a JSON obj {"id":"myID"} type: 'DELETE', success : function(data, textStatus, jqXHR) { alert( "Fine!" ); }, error : function(jqXHR, data, textStatus, errorThrown) { alert('WOOPS, something wrent wrong...'); } }); } 

任何帮助都感激不尽!! 谢谢!!

问题与CORSFilter设置有关,我在web.xml文件中设置错误。 这是CORSFilter的一部分,在web.xml中设置良好:

  CorsFilter org.apache.catalina.filters.CorsFilter  cors.allowed.origins *   cors.allowed.methods GET,POST,HEAD,OPTIONS,PUT,DELETE    CorsFilter /*