补充上一篇文章中遗留下来的坑,上篇文章从数据库动态获取时间并显示。
由于昨天的文章中,前台向后台请求数据后后台返回的值是int[]类型,很多时候不太方便,没有用json传值是因为小尘很多地方还没明白,经过昨晚的恶补和今天的实践,小尘继续补充:
1.Ajax一般用作浏览器向服务器请求数据,小尘看了很多帖子都是这样用的:
function testGet() {
$.ajax({
type: 'get',
url: 'NormalPage.aspx',
async: true,
success: function (result) {
alert(result);
},
error: function () {
setContainer('ERROR!');
}
});
}
注意url的值,指定了请求页面,但不会指定方法,后台代码在page_Log方法中写Respose,具体效果小尘没有实践,因为喜欢吧,小尘用了下面这种方法
function getdata() {
$.ajax(
{
type: "post",
async: false, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
//后台获取数据的函数,注意当对该页面重命名时,
url: "Default.aspx/getData",
//返回数据形式为json
contentType:"application/json; charset=utf-8",
dataType: "json",
//成功获取数据
success: function (result) {
var obj = JSON.parse(result.d);
console.log(obj);
alert("tip@@@@@@@@@@" + obj.dataTime + "@@@@@@@@@@@@end");
},
//显示错误
error: function (err) {
alert(err + "调用后台程序出现错误,请尝试刷新!");
},
});
}
注意这里的url,在页面后面跟了指定的方法,这种方法要求后台的对应方法为静态方法,所以在该方法中不能使用response(会报错,时间原因小尘没有去研究错误原因),后台代码(.cs):
[WebMethod]
public static string getData()
{
string dataOne = "{" + '"' + "dataTime" + '"' + ":[1]"+',' +'"'+"dataValue"+'"'+":[10]"+ "}";
return dataOne;
}
这里小尘在后台返回了一个json格式的字符串给前台,而如果前台要用obj.dataTime(obj.key)的方式取值,需要将后台返回的数据解析成json对象,这里提一下response方法,用这种方法是可以直接返回一个json对象给前台的。
今天的经历分享就到这儿了,错误的地方欢迎批评,也期待大佬们对文章中提到的点进行指导!