我正在学习Spring MVC,我一直坚持如何使用AJAX从客户端发送一个简单的字符串值并在JAVA服务器(控制器)上打印它。我写了下面的代码来做这件事。但是,当我单击按钮发送字符串时,我的浏览器会弹出error....
响应,浏览器控制台会显示POST http://localhost:8090/addUser 404 ()
。我试图解决这个问题已经有一天了。有人可以告诉可能是什么问题吗?或者请告诉一个可行的替代解决方案,使用AJAX从客户端发送数据并在JAVA服务器(Spring-MVC)上打印/保存。
UserController.java
@Controller
public class UserController {
@RequestMapping(value = "/addUser", method = RequestMethod.POST, consumes=MediaType.APPLICATION_JSON_VALUE, produces=MediaType.APPLICATION_JSON_VALUE)
public JSONArray addUser(@ModelAttribute("UserTest") JSONArray name) {
System.out.println(name.toString());
return name;
}
}
AJAX请求:
<script>
function addUser() {
var json = '{"uname":"John", "Age":42}';
obj = JSON.parse(json);
$.ajax({
url : "/addUser",
data : obj,
type : "POST",
async: false,
contentType: "application/json",
success : function(response) {
alert( response );
},
error : function() {
alert("error...."); //this is being popped-up in my browser
}
});
}
</script>
答案 0 :(得分:0)
POST
http://localhost:8090/addUser
404()
您的请求将转到http://localhost:8090/addUser
,这是不正确的。您的请求网址应该包含您的申请并包含在内。
http://localhost:8090/<app_name>/addUser
AFAIK,您的请求网址应包含应用程序名称。现在,要实现这一点,您可以更改您的ajax url
url : "/<app_name>/addUser"
答案 1 :(得分:0)
ajax调用的URL不正确。它应该像
地址:YourApplicationContextPath / ControllerName / ADDUSER