jQuery Ajax传递JSON数据的前后台实现示例
作者:工具松鼠时间:2026-10-23 09:38:07浏览:73
本文介绍如何使用jQuery封装Ajax方法传递JSON数据。前端通过手动拼接字符串并eval转换生成JSON对象,后台C#使用Hashtable构建数据并序列化为JSON格式返回。示例包含完整的前端HTML、JS封装及后端Page_Load处理逻辑,适用于需要手动控制JSON格式的场景。
前端jQuery Ajax封装与调用
前端实现部分
具体代码实现如下:
<!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(),//此处直接传入一个返回JSON数据的函数。
dataType:'json',
beforeSend:beforecall,
success:callback
});
}
//封装JSON数据生成逻辑,保持代码结构清晰。
function jsonData(){
var jsonStr="({";
jsonStr+="\"name\":";
jsonStr+="\"tree\"";
jsonStr+=",";
jsonStr+="\"id\":";
jsonStr+="\"123\"";
jsonStr+="})";
return eval(jsonStr);//核心在于使用eval将字符串转换为对象。
}
//请求前的回调函数,处理加载状态。
function beforecall(){
$('#wait').addClass("show").append('调出中...');
//alert('');//用于测试是否触发该函数。
}
//请求成功后的回调函数。
function callback(data){
$('#response').append(data.name+data.id);
$('#wait').css("display","none");
}
//页面加载完成后的事件绑定。
$(function(){
$('#confirm').click(myajax);
})
</script>
</head>
<body>
<div id="confirm">点击</div>
<div id="response">接收后台数据</div>
<div id="wait" class="hide">hello</div>
</body>
</html>后端C#数据接收与JSON生成
后端处理部分
具体代码实现如下:
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) + "}";
} 作者最新文章
WebStorm内置JS代码格式化功能怎么用
2026-11-05 10:10:47
在线JS代码格式化与混淆压缩工具推荐及使用指南
2026-11-03 20:31:53
CodePen、JSFiddle与RunJS对比:哪款在线JavaScript编辑器更好用
2026-11-03 18:52:45
无需安装环境,5款主流JavaScript在线运行工具推荐
2026-11-03 18:23:26
JS怎么将地址栏查询字符串转换为JSON对象
2026-11-03 18:10:29
