Ajax使用心得
2014-09-19 22:48
239 查看
var jsonstr= " [{ \"FProductID\": \"1\", \"FPrice\": \"2\", \"FNum\": \"23\" },{ \"FProductID\": \"1\", \"FPrice\": \"2\", \"FNum\": \"23\" }]";
传递的数据时字符串对象
1.传递数据都是使用文本类型,即dataType="text"
前端:
NET后端:
2.传递数据都是使用文本类型,即dataType="josn"
前端:
NET后端:
总结:这两种方式都可以完成功能,但是区别在哪里呢?
在我的一次开发中,把数据字符串放入url中,传递给ashx中时,如果数据字符串过于大的话,就会提交不上去,url传递的字符的数量,是有限制的
然后我使用了text文本作为传输对象,结果就可以传输过去了
传递的数据时字符串对象
1.传递数据都是使用文本类型,即dataType="text"
前端:
$.ajax({ type: "post", url: "../../Ashx/ProductService.ashx?action=SubmitForm&CustomerID=" + CustomerID + "&UserID=" + UserID + "&OrderNum=" + totalnum + "&TotalPrice=" + totalPrice, data:{ OrderDetailArray:jsonStr //切记:data外侧不能用双引号括起来 }, dataType: "text", //contentType: "application/json; charset=utf-8",切记如果dataType为Text时,contentType不能有 success: function (data) { var result = eval('(' + data + ')');因为传递的数据类型是字符串,所以要把字符串转化为对象 if (result.success == "True") { alert(result.msg); location.reload(); } } });
NET后端:
case "SubmitForm": string CustomerID = context.Request.Params["CustomerID"] ?? "";//使用context.Request.Params来获取Url中的值 string UserID = context.Request.Params["UserID"] ?? ""; string OrderNum = context.Request.Params["OrderNum"] ?? ""; string TotalPrice = context.Request.Params["TotalPrice"] ?? ""; string OrderDetailArray = context.Request["OrderDetailArray"] ?? "";//使用context.Request来获取Data数据包中的值 OrderDetailsModel[] OrderDetailsModelList = JsonConvert.DeserializeObject<OrderDetailsModel[]>(OrderDetailArray); bool AddOrderresult = ReportManage.AddOrder(CustomerID, UserID, OrderNum, TotalPrice, OrderDetailsModelList); //在这里指定输出数据的属性是文本类型,然后在前端使用evel()函数 把字符串转换为Json对象 <span style="color:#ff0000;"> context.Response.ContentType = "text"; //如果不显示指定数据类型的话,默认是json格式数据</span> //context.Response.Write("{\"msg\":\""+AddOrderresult.ToString()+"\"}"); //context.Response.End(); context.Response.Write("{\"msg\":\"生成订单成功!\",\"success\":\"" + AddOrderresult.ToString() + "\"}"); break;
2.传递数据都是使用文本类型,即dataType="josn"
前端:
$.ajax({ type: "post", url: "../../Ashx/ProductService.ashx?action=SubmitForm&CustomerID=" + CustomerID + "&UserID=" + UserID + "&OrderNum=" + totalnum + "&TotalPrice=" + totalPrice + "&OrderDetailArray=" + jsonStr + "", contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { if (d<span style="color:#ff0000;">ata.success == "True"</span>) {//直接使用json对象 alert( data.msg); location.reload(); } } });
NET后端:
case "SubmitForm": string CustomerID = context.Request.Params["CustomerID"] ?? ""; string UserID = context.Request.Params["UserID"] ?? ""; string OrderNum = context.Request.Params["OrderNum"] ?? ""; string TotalPrice = context.Request.Params["TotalPrice"] ?? ""; string OrderDetailArray = <span style="color:#ff0000;">context.Request.Params["OrderDetailArray"] </span>?? "";//我把json字符串数据放入url中作为一个参数 OrderDetailsModel[] OrderDetailsModelList = JsonConvert.DeserializeObject<OrderDetailsModel[]>(OrderDetailArray); bool AddOrderresult = ReportManage.AddOrder(CustomerID, UserID, OrderNum, TotalPrice, OrderDetailsModelList); //切记:返回的数据,一定要是json数据才行,否则前端不会显示出来 //context.Response.ContentType = "text/json"; //context.Response.Write("{\"msg\":\""+AddOrderresult.ToString()+"\"}"); //context.Response.End(); context.Response.Write("{\"msg\":\"生成订单成功!\",\"success\":\"" + AddOrderresult.ToString() + "\"}"); break;
总结:这两种方式都可以完成功能,但是区别在哪里呢?
在我的一次开发中,把数据字符串放入url中,传递给ashx中时,如果数据字符串过于大的话,就会提交不上去,url传递的字符的数量,是有限制的
然后我使用了text文本作为传输对象,结果就可以传输过去了
相关文章推荐
- Ajax1.0 使用心得
- ajax使用心得
- 使用ajaxfileupload的一点心得
- Ajax使用心得
- ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
- jquery-ajax-queue使用心得
- ajax 使用心得
- 在struts2下使用jQuery的Ajax方法的一些心得
- 初次使用Ajax.net,总结下心得并记录下来
- ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
- Ajax使用心得・整理
- ajax使用心得
- div隐藏层登录框及使用ajax写入cookies心得
- ajax使用心得
- ajax使用心得
- .Net MVC4 使用心得(四)分页、Partial View、删除、ajax返回
- AJAX学习心得分享----(二)使用JQuery实现AJAX效果
- Echarts使用心得---(1)AJAX
- div隐藏层登录框及使用ajax写入cookies心得
- ajaxpro 的使用心得