jquery ajax发布,数据没有发送到服务器

时间:2013-10-23 15:32:13

标签: jquery ajax

我正在通过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将数据发送到服务器的解决方案是什么。

2 个答案:

答案 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',