dwz有一个 dwz.ajax.js会根据状态码验证时否从新登陆 ,,,
我要做的是 直接返回一个 json数据给前台
说简单点就是 前台js已经做好了 验证功能
我要返回以下的json数据::这个怎么做啊 晕啊
{
"statusCode":"301",
"message":"\u4f1a\u8bdd\u8d85\u65f6\uff0c\u8bf7\u91cd\u65b0\u767b\u5f55\u3002",
"navTabId":"",
"callbackType":"",
"forwardUrl":""
}
var selizer = new JavaScriptSerializer(); var message = "Error Message"; var jsonData = new { status, message }; return selizer.Serialize(jsonData);
$.ajax({ url: "www.baidu.com", type: "GET", data: { "clientID": clientID, "nd": new Date().getTime() }, dataType: "json", success: function (data) { alert(data.message) } });
在前端用ajax调用后端验证的方法,并返回验证结果
var selizer = new JavaScriptSerializer();
这个对象干嘛用的啊???
selizer.Serialize(jsonData); ???这个方法的作用是什么
$.ajax()这个ajax请求 跟前边你写的代码没有关系了
@询问java1:
上一段是后台转json的方法 只是没声明方法名 JavaScriptSerializer这个对象用于序列化成json对象
下一段是用ajax调用后台方法的也就是上一段的方法
@Zery: 哦,,这个我明白了 我的意思是 我怎么把$.ajax()封装起来 再什么时候发出请求, 我这边的是这样的 session 会话超时 判断是否让用户从新登陆,,,,
@询问java1: session超时应该在服务端判断,然后直接跳转到login页面,为什么到前端去判断了呢?
如果用js 处理那禁用js后就不会有超时了
@Zery: 我们这个不是用的DWZ框架么,,,他有一个 会话超时按钮 ,,您可以看一下 就是请求一个html 然后html内容就是 json{ } 形式 然后就弹出了 会话超时 请从新登陆 提示框
@询问java1: 那后台的方法就不用说了比较简单,至于什么时候触发验证超时的事件,这个看你的需求来了,
而这个异步请求的方法就是在触发验证方法时调用,DWZ框架没用过,所以只能跟你说思路了,抱歉 。
学习一下 Json.NET 吧,JSON 传递数据很常用的。
using Newtonsoft.Json; public class DWZData{ public string statusCode{get;set;} public string message{get;set;} public string navTabId{get;set;} public string callbackType{get;set;} public string forwardUrl{get;set;} } public class DWZHandler{ public string SendBack(){ DWZData data = new DWZData(); data.statusCode = "301"; // ... string json = JsonConvert.SerializeObject(data); return json; } }
什么叫JSON .net 不太明白 大哥
@询问java1: Json.NET 是一个 C# 处理 Json 数据的工具。你的项目中引用了Json.NET的组件之后,会有一个命名空间Newtonsoft.Json,其中有很多操作Json的方法。
最常用的就是将一个C#类的实例转为Json字符串。比如你上面提到的消息格式,我定义为一个类,然后创建一个该类的实例,赋值,最后序列化为Json字符串,返回给Ajax调用的接口。
@飞扬的尘埃: 您好 您有QQ么 可以相互交流交流
直接下载一个JsonHelper帮助类,引用到后台cs文件中,创建一个类的对象。里面声明以上属性,public string statusCode{get;set;} public string message{get;set;} public string navTabId{get;set;} public string callbackType{get;set;} public string forwardUrl{get;set;}
在类的前面添加序列化标识为输出Json即可,前端js直接调用
建议用1楼的,那种用法在.net3.5加入的,在处理 序列化数据不大的情况,还是很好的,mvc中的json() 内部就是用它实现的,当然可以用json.net 具体看你在项目怎么使用了