1、客户端向服务端(ashx文件)发送请求数据
向服务端发送请求数据可以是object或string,格式一般为键值对(key/value)的形式,具体为js对象({key:value},若data数据类型为JavaScript对象或数组,Jquery在提交之前自动调用JQuery.param()方法把要发送的数据编码成为"application/x-www-form-urlencoded"格式的数据(即name=value&name1=value1))或json对象({"key","value"})或拼接在URL后面("test.ashx?key=value")。如果前端页面发送的请求数据过多,可将该json对象做序列化处理成json字符串作为一个key的value,此时后台接收数据是只需使用:get:context.Request.QueryString["key"] post:context.Request.Form["key"]获取到,然后对获取到的数据利用Newtonsoft.Json.JsonConvert.DeserializeObject<className>(key)方法做反序列化处理即可将数据存到实体类className中,此时要引用程序集Newtonsoft.Json,此处的类名是指的存放json字符串中的数据所用。
参数dataType是告诉后台我要什么样格式的数据,但我觉得更多是为后台传过来的数据做处理,例如如果后台传过来的是json字符串,如果设定dataType为json,那返回的数据就是json对象,否则就是json字符串,需另外做反序列化处理才能在前端页面中使用。可以是以下几种形式:(即服务器回发数据也可以这几种)
"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含 script 元素。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。
"json": 返回 JSON 数据 。JQuery将返回的字符串格式数据自动转化为Javascript对象,便于直接使用obj.property格式访问。若没有指定该选项,即使返回的是JSON格式的字符串,JQuery也不会自动转换。
"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递
2、服务端收到请求后返回的数据
context.Response.Write(要发送给客户端的数据);
一般回发格式用json,即json字符串,因为Response.Write()里面只能是字符串
注:
1、json对象是用json初始化器生成的js对象