$ .ajax DELETE忽略数据

时间:2012-10-05 14:20:15

标签: ajax jquery

我在搜索解决方案时找到了这个链接。它建议版本1.4.x中的错误修复。这是一个真正的旧版本,我还没有修复?

$.ajax ignoring data param for DELETE requests

下面的代码完全可以在GET上找到完全相同的请求参数。我如何调用DELETE方法?

    var data = {
            accessToken : accessToken
        }



        $.ajax({
            type : 'DELETE',
            url : "/user/" + userId,
            cache : false,
            data : data,
            success : function(profile) {
                $("#account-delete .response-container").html(JSON.stringify(profile, null, 2));
                $("#account-delete .request-container").html("/user/?" + $.param(data));
            }, 
            error : function(jqXHR, textStatus, errorThrown) {
                $("#account-delete .error-container").html(textStatus +" - " +  errorThrown);

            }

        });

3 个答案:

答案 0 :(得分:0)

您是否查看了其他问题Here?这可能是你的问题:

请注意,如果您使用的是IIS网络服务器并且jquery PUT或DELETE请求返回404错误,则需要在IIS中启用这些谓词。我发现这是一个很好的资源:

http://geekswithblogs.net/michelotti/archive/2011/05/28/resolve-404-in-iis-express-for-put-and-delete-verbs.aspx

答案 1 :(得分:0)

您可能不应该使用DELETE,因为某些浏览器根据jQuery documentation不支持它。

也许this answer会有所帮助。

答案 2 :(得分:0)

好的,这个灵魂有效。

在web.xml中添加此过滤器

<filter>
    <filter-name>hiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</filter>

使用POST调用控制器,在数据中提供_method:'DELETE'。

  $.ajax({  
        url: "/application/form",
        type: 'POST',  
        data: { 
            _method: 'DELETE',
            param : "param"

        },  
        success: function (res) {  
            console.log("success");
        } , 
        error: function (res) {  
            alert(res);
        } 
    });