我正在使用ajax发送删除请求,但我得到一个NULL值。我无法弄清楚我做错了什么。
这是我的ajax电话
(function() {
$('#btnDelete').bind('click', function() {
$.ajax({
url: '/Project',
type: 'DELETE',
cache: false,
dateType: 'json',
data: {
delProjId: $('#projectId').text(),
nbRandom: Math.random().toString()
},
success: function(data) {
if (data.message[0].error) {
toastr.error(data.message[0].message);
} else {
toastr.success(data.message[0].message);
console.log('success');
}
},
error: function(request, status, error) {
toastr.error(error);
}
});
});
这是我的帖子请求
protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setHeader("Content-Type", "application/json");
String delProjId = request.getParameter("delProjId");
System.out.println("Parm:" + delProjId);
}
服务器记录
Parm:null
java.lang.NullPointerException
at com.projectRequest.models.Project.doDelete(Project.java:122)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:210)
目前设置为span元素。我尝试将值放在输入字段中,甚至在我传递它时在值周围添加JSON.stringify()。我仍然得到相同的结果,一个空参数。我在客户端看到了这个值,甚至在我执行ajax调用之前记录它。我不确定导致参数清除的原因。
答案 0 :(得分:1)
只有 POST 请求在请求正文中具有作为实体的参数。您必须将其作为URL的一部分发送。
请参见RFC 2616:“ DELETE方法请求源服务器删除由Request-URI标识的资源”。
您可以通过URI传递参数,例如: