日期:2014-05-16  浏览次数:20361 次

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


详细出处参考:http://www.jb51.net/article/16531.htm