$.ajax json数据传递方法

  前台

  

复制代码 代码如下:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml" >

  <head>

  <title>无标题页</title>

  <style type="text/css">

  .show{ display:block;}

  .hide{ display:none;}

  </style>

  <script type="text/javascript" src="jquery/jquery-1.2.6.js"></script>

  <script type="text/javascript">

  //这个方法把ajax方法封装一下,方便调用。

  function myajax(){

  //var obj=jsonData();

  $.ajax({

  type:'post',

  url:'ajax.aspx',

  data:jsonData(),//可以直接加一个函数名。

  dataType:'json',

  beforeSend:beforecall,

  success:callback

  });

  }

  //封装json数据,为了代码清晰

  function jsonData(){

  var jsonStr="({";

  jsonStr+="\"name\":";

  jsonStr+="\"tree\"";

  jsonStr+=",";

  jsonStr+="\"id\":";

  jsonStr+="\"123\"";

  jsonStr+="})";

  return eval(jsonStr);//关键在于转换。

  }

  //调用前方法,不成功

  function beforecall(){

  $('#wait').addClass("show").append('调出中...');

  //alert('');//测试是否调用

  }

  //回调函数

  function callback(data){

  $('#response').append(data.name+data.id);

  $('#wait').css("display","none");

  }

  //onload()事件

  $(function(){

  $('#confirm').click(myajax);

  })

  </script>

  </head>

  <body>

  <div id="confirm">点击</div>

  <div id="response">接收后台数据</div>

  <div id="wait" class="hide">hello</div>

  </body>

  </html>

  后台

  

复制代码 代码如下:

  protected void Page_Load(object sender, EventArgs e)

  {

  Hashtable ht = new Hashtable();

  string name = Request.Params["name"].ToString();

  string birth = Request.Params["birthday"].ToString();

  if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(birth))

  {

  //Response.ContentType = "Application/json";

  //Response.Write(CreareJson("this is ok!", 1, name, birth));

  ht.Add("info", "成功了");

  ht.Add("sta", "状态");

  ht.Add("name", name);

  ht.Add("birth", birth);

  Response.Write(CreateJsonParams(ht));

  }

  Response.End();

  }

  private string CreateJsonParams(Hashtable items)

  {

  string returnStr = "";

  foreach(DictionaryEntry item in items)

  {

  returnStr += "\"" + item.Key.ToString() + "\":\"" + item.Value.ToString() + "\",";

  }

  return "{" + returnStr.Substring(0,returnStr.Length-1) + "}";

  }