-1

我在寻找解决方案时找到了这个链接。它建议在版本 1.4.x 中进行错误修复。那是一个非常旧的版本,我还没有修复吗?

$.ajax 忽略 DELETE 请求的数据参数

下面的代码在采用完全相同的请求参数的 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);

            }

        });
4

3 回答 3

0

您在这里查看了其他 SO 问题吗?这可能是你的问题:

请注意,如果您使用的是 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

于 2012-10-05T14:24:24.847 回答
0

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

也许这个答案会有所帮助。

于 2012-10-05T14:27:22.577 回答
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);
        } 
    });
于 2012-10-06T11:55:21.807 回答