使用springmvc和Thymeleaf的Ajax请求
在网页中,我想提供一些按钮来执行一些操作,例如,删除用户。我不想为每个按钮创建一个表单,所以我认为ajax post请求是实现这一点的最佳方式。出于某种原因,该URL不会被控制器截获,只有当我添加项目名称时,它才会工作(例如URL:“projectname/users/remove”)。显然,我不想在每个ajax请求上硬编码项目名称,也不想使用项目名称变量。通过仅为url/操作指定“/users/remove”,发出此类请求的正确方式是什么使用springmvc和Thymeleaf的Ajax请求,ajax,spring-mvc,thymeleaf,Ajax,Spring Mvc,Thymeleaf,在网页中,我想提供一些按钮来执行一些操作,例如,删除用户。我不想为每个按钮创建一个表单,所以我认为ajax post请求是实现这一点的最佳方式。出于某种原因,该URL不会被控制器截获,只有当我添加项目名称时,它才会工作(例如URL:“projectname/users/remove”)。显然,我不想在每个ajax请求上硬编码项目名称,也不想使用项目名称变量。通过仅为url/操作指定“/users/remove”,发出此类请求的正确方式是什么 function removeUser(userid)
function removeUser(userid){
var r = confirm("Are you sure you want to delete user '" + userid + "''?");
if (r == true) {
$.ajax({
type : "POST",
url : "/users/remove",
data : {
userid: userid
},
success : function(response) {
alert("Suceeded!");
},
error : function(e) {
alert('Failed!: ' + e);
}
});
}
}
提前谢谢
Diego如果您在一个精确的页面url上,例如:webpage.com,并且您希望将请求发送到webpage.com/users/remove 删除前导“/”,如下所示:
url : "users/remove"
您应该像这样发送请求,这样它只会添加到当前url,第一个“/”表示您希望转到根目录,这在eclipse和IntelliJ中是不同的
如果您想要高级解决方案,应该使用jsp和c:url创建一个变量。谢谢您的评论。我绝对不想限制我的web应用程序只在root上工作。至于变量,这可能是一个解决方案,但如果上下文知道web应用程序的名称(部署url),我为什么要费心添加它呢?到目前为止,当我做一些类似的事情时,它可以很好地处理表单:
你误解了我,这个解决方案对我很有效:我的意思是:将第一个“/”去掉,它就不会进入根目录。谢谢!删除前导“/”确实有效。很奇怪,Thymeleaf的文档说:“上下文相关URL以/”开头。我很高兴有人打电话给控制员。