使用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

回到顶部