控制器不接受数据POST 404
Controller does not accept data POST 404
请帮帮我,我正在用 spring mvc 在 java ee 上写一个站点,我需要将请求发送到 servlet,但出现错误 404。
我的html:
<input type="button" value="add" onclick="sendRequest()">
我的 js:
function sendRequest(){
var str = "this is string";
$.ajax({
url:"ajaxtest",
type:"POST",
//data:JSON.stringify(myJson).toString(),
data:str,
success: alert("good")
});}
我的控制器:
@RequestMapping(value="ajaxtest", method=RequestMethod.POST)
public void getAjax(String myStr){
System.out.print("result : "+myStr);
}
结果控制台浏览器:
POST http://localhost/MyProject/ajaxtest 404 (Not Found)
m.ajaxTransport.send - jquery-1.11.2.min.js:4
m.extend.ajax - jquery-1.11.2.min.js:4
sendRequest - add.jsp:139
onclick - add.jsp:213
结果控制台ide:
INFO: Server startup in 2991 ms
result : null
请帮帮我!
您需要做几件事才能使其正常工作。我的回答基于 post.
中的信息
您 ajax 数据必须是像下面这样的键值对才能发送一个简单的字符串。
function sendRequest(){
var str = "this is string";
$.ajax({
url:"ajaxtest",
type:"POST",
//data:JSON.stringify(myJson).toString(),
data:{myStr:str},
success: alert("good")
});}
您必须告诉 spring 如何在控制器方法上解析 myStr ,否则 Spring 将无法知道如何解析它。在我们的例子中,我们将使用@RequestParam 注释,它告诉 spring 从请求参数中获取它。
@RequestMapping(value="ajaxtest", method=RequestMethod.POST)
public void getAjax(@RequestParam String myStr){
System.out.print("result : "+myStr);
}
在您的控制器中,更改:
public void getAjax(String myStr) {
至:
public void getAjax(@RequestBody String myStr) {
@RequestBody
告诉 Spring 使用请求的内容作为控制器方法的参数。
请帮帮我,我正在用 spring mvc 在 java ee 上写一个站点,我需要将请求发送到 servlet,但出现错误 404。
我的html:
<input type="button" value="add" onclick="sendRequest()">
我的 js:
function sendRequest(){
var str = "this is string";
$.ajax({
url:"ajaxtest",
type:"POST",
//data:JSON.stringify(myJson).toString(),
data:str,
success: alert("good")
});}
我的控制器:
@RequestMapping(value="ajaxtest", method=RequestMethod.POST)
public void getAjax(String myStr){
System.out.print("result : "+myStr);
}
结果控制台浏览器:
POST http://localhost/MyProject/ajaxtest 404 (Not Found)
m.ajaxTransport.send - jquery-1.11.2.min.js:4
m.extend.ajax - jquery-1.11.2.min.js:4
sendRequest - add.jsp:139
onclick - add.jsp:213
结果控制台ide:
INFO: Server startup in 2991 ms
result : null
请帮帮我!
您需要做几件事才能使其正常工作。我的回答基于 post.
中的信息您 ajax 数据必须是像下面这样的键值对才能发送一个简单的字符串。
function sendRequest(){
var str = "this is string";
$.ajax({
url:"ajaxtest",
type:"POST",
//data:JSON.stringify(myJson).toString(),
data:{myStr:str},
success: alert("good")
});}
您必须告诉 spring 如何在控制器方法上解析 myStr ,否则 Spring 将无法知道如何解析它。在我们的例子中,我们将使用@RequestParam 注释,它告诉 spring 从请求参数中获取它。
@RequestMapping(value="ajaxtest", method=RequestMethod.POST)
public void getAjax(@RequestParam String myStr){
System.out.print("result : "+myStr);
}
在您的控制器中,更改:
public void getAjax(String myStr) {
至:
public void getAjax(@RequestBody String myStr) {
@RequestBody
告诉 Spring 使用请求的内容作为控制器方法的参数。