使用AJAX进行PUT和DELETE时的403状态(禁止)
我已经使用JAX-RS(Jersey 2.0)实现了一个小的REST
API,并且正在使用AJAX调用该API,GET和POST都可以正常工作,但是当我调用任何PUT或DELETE方法时,得到的只有以下内容错误信息:
这是Java中 方法的示例:
@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设置有关,我在 文件中将其设置为错误。这是CORSFilter的一部分,在
内进行了适当设置:
<filter> <filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
以上是 使用AJAX进行PUT和DELETE时的403状态(禁止) 的全部内容, 来源链接: utcz.com/qa/417984.html