ajax+ashx返回值详解
做Asp.Net网站开发,少不了使用ajax技术,我平时也经常用ajax但总觉得了解的不透彻,今天在这里总结一下,也给有需要的人提供一点帮助。前台我不太理解的是dataType=text和dataType=json有啥区别,后台我想搞清楚能不序列化直接返回对象吗?下面将揭晓答案。 后台返回string后台代码: public void ProcessRequest(HttpContext context)
{
try
{
string action = context.Request.Form["action"];
string param1 = context.Request.Form["param1"];
switch (action)
{
case "getString":
//【1】转化成json返回
context.Response.Write(JsonHelper.Serialize(GetString()));
//【2】直接返回
//context.Response.Write(GetString());
break;
default:
break;
}
}
catch (Exception ex)
{
context.Response.Write("error");
}
}
private string GetString()
{
return "abcde";
}
前台代码dataType=text: function GetStringText() {
$.ajax({
type: "post",url: "Handler1.ashx",contentType: "application/x-www-form-urlencoded;charset=utf-8;",data: { action: "getString",param1: "aaa" },dataType: "text",success: function(data) {
//【1】后台数据转化成json字符串
alert("data=" + data);
},error: function(error) {
alert("error=" + error);
}
});
}
后台数据进行json序列化,dataType=text运行截图: function GetStringJosn() {
$.ajax({
type: "post",dataType: "json",success: function (data) {
//【1】后台数据转化成json字符串
alert("data=" + data);
//【2】后台数据不进行转化直接进入error处理分支
},error: function (error) {
alert("error=" + error);
}
});
}
后台数据进行json序列化,dataType=json运行截图: 后台返回string[]后台代码: public void ProcessRequest(HttpContext context)
{
try
{
string action = context.Request.Form["action"];
string param1 = context.Request.Form["param1"];
switch (action)
{
case "getArray":
//【1】转化成json返回
context.Response.Write(JsonHelper.Serialize(GetArray()));
//【2】直接返回
//context.Response.Write(GetArray());
break;
default:
break;
}
}
catch (Exception ex)
{
context.Response.Write("error");
}
}
private string[] GetArray()
{
string[] array = {"aaa","bbb","ccc","ddd","eee"};
return array;
}
前台代码dataType=text: function GetArrayText() {
$.ajax({
type: "post",data: { action: "getArray",success: function(data) {
//【1】后台数据转化成json字符串
var json = eval('(' + data + ')');
alert("data=" + data + "rn" +
"json[0]=" + json[0] + "rn" +
"json[1]=" + json[1] + "rn" +
"json[2]=" + json[2]);
//【2】后台数据不进行转化data="System.string[]"
//alert("data=" + data + "rn" +
// "data[0]=" + data[0] + "rn" +
// "data[1]=" + data[1] + "rn" +
// "data[2]=" + data[2]);
},error: function(error) {
alert("error=" + error);
}
});
}
后台数据进行json序列化,dataType=text运行截图: function GetArrayJosn() {
$.ajax({
type: "post",success: function (data) {
//【1】后台数据转化成json字符串
alert("data=" + data + "rn" +
"data[0]=" + data[0] + "rn" +
"data[1]=" + data[1] + "rn" +
"data[2]=" + data[2]);
//【2】后台数据不进行转化直接进入error处理分支
},error: function (error) {
alert("error=" + error);
}
});
}
后台数据进行json序列化,dataType=json运行截图: 后台返回Dictionary后台代码: public void ProcessRequest(HttpContext context)
{
try
{
string action = context.Request.Form["action"];
string param1 = context.Request.Form["param1"];
switch (action)
{
case "getDictionary":
//【1】转化成json返回
context.Response.Write(JsonHelper.Serialize(GetDictionary()));
//【2】直接返回
//context.Response.Write(GetDictionary());
break;
default:
break;
}
}
catch (Exception ex)
{
context.Response.Write("error");
}
}
private Dictionary<string,object> GetDictionary()
{
Dictionary<string,object> dict = new Dictionary<string,object>()
{
{"name","guo"},{"age",18},{"address","唐宁街十号"}
};
return dict;
}
前台代码dataType=text: function GetDictionaryText() {
$.ajax({
type: "post",data: { action: "getDictionary",success: function(data) {
//【1】后台数据转化成json字符串
var json = eval('(' + data + ')');
alert("data=" + data + "rn" +
"json=" + json + "rn" +
"json[name]=" + json["name"] + "rn" +
"json[age]=" + json["age"] + "rn" +
"json[address]=" + json["address"]);
//【2】后台数据不进行转化
//alert("data=" + data + "rn" +
// "data[0]=" + data[0] + "rn" +
// "data[1]=" + data[1] + "rn" +
// "data[2]=" + data[2]);
},error: function(error) {
alert("error=" + error);
}
});
}
后台数据进行json序列化,dataType=text运行截图: function GetDictionaryJosn() {
$.ajax({
type: "post",success: function (data) {
//【1】后台数据转化成json字符串
alert("data=" + data + "rn" +
"data[name]=" + data["name"] + "rn" +
"data[age]=" + data["age"] + "rn" +
"data[address]=" + data["address"]);
//【2】后台数据不进行转化直接进入error处理分支
},error: function (error) {
alert("error=" + error);
}
});
}
后台数据进行json序列化,dataType=json运行截图: 后台返回class后台代码: public void ProcessRequest(HttpContext context)
{
try
{
string action = context.Request.Form["action"];
string param1 = context.Request.Form["param1"];
switch (action)
{
case "getClass":
//【1】转化成json返回
context.Response.Write(JsonHelper.Serialize(GetClass()));
//【2】直接返回
//context.Response.Write(GetClass());
break;
default:
break;
}
}
catch (Exception ex)
{
context.Response.Write("error");
}
}
private Student GetClass()
{
Student objStudent = new Student()
{
Name = "guo",Age = 18
};
return objStudent;
}
前台代码dataType=text: function GetClassText() {
$.ajax({
type: "post",data: { action: "getClass",success: function (data) {
//【1】后台数据转化成json字符串
var json = eval('(' + data + ')');
alert("data=" + data + "rn" +
"json=" + json + "rn" +
"json[Name]=" + json["Name"] + "rn" +
"json[Age]=" + json["Age"]);
//【2】后台数据不进行转化
//alert("data=" + data + "rn" +
// "data[0]=" + data[0] + "rn" +
// "data[1]=" + data[1] + "rn" +
// "data[2]=" + data[2]);
},error: function (error) {
alert("error=" + error);
}
});
}
后台数据进行json序列化,dataType=text运行截图: function GetClassJosn() {
$.ajax({
type: "post",success: function (data) {
//【1】后台数据转化成json字符串
alert("data=" + data + "rn" +
"data[Name]=" + data["Name"] + "rn" +
"data[Age]=" + data["Age"]);
//【2】后台数据不进行转化直接进入error处理分支
},error: function (error) {
alert("error=" + error);
}
});
}
后台数据进行json序列化,dataType=json运行截图: 后台返回json字符串后台代码: public void ProcessRequest(HttpContext context)
{
try
{
string action = context.Request.Form["action"];
string param1 = context.Request.Form["param1"];
switch (action)
{
case "getJson":
//【1】转化成json返回
context.Response.Write(JsonHelper.Serialize(GetJson()));
//【2】直接返回
//context.Response.Write(GetJson());
break;
default:
break;
}
}
catch (Exception ex)
{
context.Response.Write("error");
}
}
private string GetJson()
{
string json = "{"name":"guo","age":"18","content":{"phone":"18233199999","address":"唐宁街十号"}}";
return json;
}
前台代码dataType=text: function GetJsonText() {
$.ajax({
type: "post",data: { action: "getJson",success: function(data) {
//【1】后台数据转化成json字符串
var json = eval('(' + data + ')');
json = eval('(' + json + ')');
alert("data=" + data + "rn" +
"json=" + json + "rn" +
"json[name]=" + json["name"] + "rn" +
"json[age]=" + json["age"] + "rn" +
"json[content]=" + json["content"] + "rn" +
"json[content][phone]=" + json["content"]["phone"] + "rn" +
"json[content][address]=" + json["content"]["address"]);
//【2】后台数据不进行转化
//var json = eval('(' + data + ')');
//alert("data=" + data + "rn" +
// "json=" + json + "rn" +
// "json[name]=" + json["name"] + "rn" +
// "json[age]=" + json["age"] + "rn" +
// "json[content]=" + json["content"] + "rn" +
// "json[content][phone]=" + json["content"]["phone"] + "rn" +
// "json[content][address]=" + json["content"]["address"]);
},error: function(error) {
alert("error=" + error);
}
});
}
后台数据进行json序列化,dataType=text运行截图: function GetJsonJosn() {
$.ajax({
type: "post",success: function (data) {
//【1】后台数据转化成json字符串
var json = eval('(' + data + ')');
alert("data=" + data + "rn" +
"json=" + json + "rn" +
"json[name]=" + json["name"] + "rn" +
"json[age]=" + json["age"] + "rn" +
"json[content]=" + json["content"] + "rn" +
"json[content][phone]=" + json["content"]["phone"] + "rn" +
"json[content][address]=" + json["content"]["address"]);
//【2】后台数据不进行转化
//alert("data=" + data + "rn" +
// "data[name]=" + data["name"] + "rn" +
// "data[age]=" + data["age"] + "rn" +
// "data[content]=" + data["content"] + "rn" +
// "data[content][phone]=" + data["content"]["phone"] + "rn" +
// "data[content][address]=" + data["content"]["address"]);
},error: function (error) {
alert("error=" + error);
}
});
}
后台数据进行json序列化,dataType=json运行截图: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Oracle11gR2 for Linux6.4 静默安装
- c# – 如何在基于WCF的方案中管理EF 4.2关联
- xml – 我可以重新定义XSD架构以更改类型子节点的maxOccurs
- Cocos2D旋转炮塔到指定角度(二)
- flex – Adob??e Air – 用空气打开文件
- 【iOS异常】 JSonKit does not support Objective-C Automa
- c# – 如何在抽象类中声明任何类型的数组(从给定类型派生)?
- Scrolling Large Data Sets in Flex Charts
- Swift 4.2,Xcode playground中的字符串firstIndex()函数错误
- c – 我们如何知道真实类型字体的代码点是否超过0xFFFF?