我在搜索解决方案时找到了这个链接。它建议版本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);
}
});
答案 0 :(得分:0)
您是否查看了其他问题Here?这可能是你的问题:
请注意,如果您使用的是IIS网络服务器并且jquery PUT或DELETE请求返回404错误,则需要在IIS中启用这些谓词。我发现这是一个很好的资源:
答案 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);
}
});