Java 在SpringMVC中使用jQueryAjax从html页面传递值
我试图在SpringMVC中学习jQueryAjax,我试图将一个值从视图传递到控制器,并在控制台中从控制器打印该值,我想稍后学习如何在控制器中更改该值,然后将其传递到视图,但现在我有一个错误的请求 这是我的控制器方法Java 在SpringMVC中使用jQueryAjax从html页面传递值,java,javascript,jquery,ajax,spring,Java,Javascript,Jquery,Ajax,Spring,我试图在SpringMVC中学习jQueryAjax,我试图将一个值从视图传递到控制器,并在控制台中从控制器打印该值,我想稍后学习如何在控制器中更改该值,然后将其传递到视图,但现在我有一个错误的请求 这是我的控制器方法 @RequestMapping(value = "formNormal", method = RequestMethod.GET) public String formNormal(Model model) { return "formNormal";
@RequestMapping(value = "formNormal", method = RequestMethod.GET)
public String formNormal(Model model) {
return "formNormal";
}
@RequestMapping(value = "formNormal", method = RequestMethod.POST)
public @ResponseBody String jsonMethod(@RequestBody String name) {
String controllerVariable = name;
System.out.println("controller variable value is " + controllerVariable);
return controllerVariable;
}
这是我的formNormal.html页面
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script type="text/javascript">
function doAjaxPost()
{
// get the form values
var name = $('#name').val();
var json = {"name" : name};
$.ajax(
{
type: "POST",
url: "formNormal",
data: JSON.stringify(json),
cache: false,
beforeSend: function(xhr)
{
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
},
success: function(response)
{
alert(response);
$('#name').val('');
},
error: function (xhr, ajaxOptions, thrownError)
{
alert(xhr.status);
alert(xhr.responseText);
alert(thrownError);
}
});
}
</script>
<fieldset>
<legend>Name in view</legend>
Name in view: <input type="text" name="name">
<br>
<input type="button" value="Add Users" onclick="doAjaxPost()">
</fieldset>
<br>
它在警报中打印我的[object object],在我的eclipse控制台中,name变量值是
{}
Try数据:JSON.stringify(JSON)
。您需要首先将javascript变量转换为JSON字符串。谢谢,我不再有400错误,但现在变量名为空,我的控制台不打印值,我收到一个警告,提示“name:undefined”,您能确认控制器代码现在获得了值吗?该警报来自您的成功回调,因此我相信您的控制器方法会被调用。你能在success中提醒(response)并让我知道吗?我在succes块中添加了这行代码:success:function(response){alert(“Name:”+response.Name);$(“#Name”).val(“”);alert(response)},
警报显示[object object]
,eclipse中的我的控制台显示{}
是我变量的值。您没有理解我的意思。我要求你们做的是保持警惕(“姓名:“+回复”);而不是警报(“名称:”+response.Name);希望我说得清楚。试试`$.parseJSON(JSON.stringify(response));警惕(反应);'请
`success: function(response)
{
alert( "Name: "+response);
$('#name').val('');
},`