我正在通过jQuery ajax对Struts2 Action类进行AJAX调用。
我从客户端将json数据发送到服务器。如果我在$.ajax()
中使用“GET”,则数据将传输到服务器。如果我用$.ajax()
中的“POST”替换GET,则数据不会传输到服务器。
我的代码,
$.ajax(
{
type: 'GET',
url: 'login.action',
contentType: "application/json; charset=utf-8",
dataType: 'json',
data:
{
jsonData: JSON.stringify(
{
number:"10",
name:"ramesh"
})
},
success: function (data)
{
printStudentDetails(data);
}
});
在firebug中,使用GET时,json数据显示为
jsonData {"number":"10","name":"ramesh"}
使用POST时,json数据可见,如下所示
jsonData=%7B%22number%22%3A34%2C%22name%22%3A34%2C%22
使用POST将数据发送到服务器的解决方案是什么。
答案 0 :(得分:1)
它似乎正如我所期望的那样工作。它正在对您的JSON数据进行字符串化,您在POST中看到的内容是HTML编码的。如果您想直接发送JSON数据,请删除JSON.stringify
。
$.ajax(
{
type: 'GET',
url: 'login.action',
contentType: "application/json; charset=utf-8",
dataType: 'json',
data:
{
number:"10",
name:"ramesh"
},
success: function (data)
{
printStudentDetails(data);
}
});
答案 1 :(得分:0)
您没有向服务器发送JSON,您正在发送表单参数。删除contentType。
url: 'login.action',
//contentType: "application/json; charset=utf-8",
dataType: 'json',