【问题标题】:403 Status (Forbidden) when PUT and DELETE using AJAX使用 AJAX 进行 PUT 和 DELETE 时的 403 状态(禁止)
【发布时间】:2014-08-03 06:54:16
【问题描述】:

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

加载资源失败:服务器响应状态为 403 (Forbidden)

以下是 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...');
        }
    });
}

任何帮助将不胜感激!谢谢!!

【问题讨论】:

  • 与其编辑问题以包含您的解决方案,不如简单地发布答案(并“接受”)。
  • @PaulRichter 谢谢你的建议,这就是我刚刚所做的。
  • @AntP 谢谢你的建议!我刚刚在下面发布了解决方案并接受了它。

标签: java jquery ajax rest jax-rs


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2018-11-22
    • 2019-04-02
    • 2014-10-31
    • 2017-08-11
    • 2012-05-20
    • 2011-03-03
    • 2016-02-29
    • 2020-08-18
    • 1970-01-01
    相关资源
    最近更新 更多