0

我正在通过 jQuery ajax 对 Struts2 Action 类进行 AJAX 调用。

我正在将 json 数据从我的客户端发送到服务器。如果我在中使用“GET” $.ajax(),则数据将传输到服务器。如果我将 GET 替换为“POST” $.ajax(),则数据不会传输到服务器。

我的代码,

$.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 将数据发送到服务器的解决方案是什么?

4

2 回答 2

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);
  }
});
于 2013-10-23T16:16:34.010 回答
0

您不是在向服务器发送 JSON,而是在发送表单参数。删除内容类型。

url: 'login.action',
//contentType: "application/json; charset=utf-8",
dataType: 'json',
于 2013-10-23T15:41:15.927 回答