ajax如何传递josn数据,$.ajax json数据传递方法

前台

代码如下:

无标题页

.show{ display:block;}

.hide{ display:none;}

//这个方法把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);

})

点击
接收后台数据
hello

后台

代码如下:

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) + "}";

}