JQuery中ajax,get方法在asmx中的使用
2017-10-11 15:31
465 查看
喜大普奔,今天终于完成了一个月前就想完成的一个代码实现。就是在点击一个按钮后禁用按钮,弹出正在操作的提示框,执行完事件后再启用按钮。
以前的想法是Ajax和aspx联用,这样,省页面,也不用对后台代码进行修改,后来发现,有一些类在这个联用中不能使用,在这个过程里,方法是static类型的,我这里有一个发送邮件的操作,使用了Server.MapPath方法和file类的一些方法,就不能使用了。在请教了一个老同事后,决定采用Ajax和asmx的联用。
基本思路是,先点击一个按钮,弹出一个弹窗提示,按钮disable,Ajax传输数据到asmx处理,asmx处理成功后返回0、1的标识,Ajax再接受标识后显示按钮和关掉弹窗。
弹窗是使用了公司的一个弹窗,不是自己写的。
HTML页面
js
contentType: "application/json;charset=utf-8",//有这条报“请求格式无效
这个可能后asmx返回的是xml格式相冲突吧。
//async: false,是否异步,有这句话会不能success结果处理的。
asmx页面
一番辛苦,忙这个差不多忙了半天,好多东西都要百度,也差点想半途放弃,冒出了两个想法,一个是asmx传值和获取值的时候那么写,是因为不会写JSON,二是注释async: false这句话,刚开始发现它在的时候,处理显示的效果好像是点击按钮,等按钮事件处理完在弹出提示的,突然想起这句话好像和异步有关,就注释点试试看的,没想到还真成了。还是学的不好啊。还有将解析result的时候,试了好多方法,发现都没有结果,现在回想应该是方法错了,当时使用的方法基本上是解析JSON的,这里asmx返回的是xml,然后百度js使用Ajax和asmx,看到JQuery中ajax,get方法在ashx,aspx,asmx中的使用一文,发现了自己的问题(我转载了这篇文章),及时改了过来。
以前的想法是Ajax和aspx联用,这样,省页面,也不用对后台代码进行修改,后来发现,有一些类在这个联用中不能使用,在这个过程里,方法是static类型的,我这里有一个发送邮件的操作,使用了Server.MapPath方法和file类的一些方法,就不能使用了。在请教了一个老同事后,决定采用Ajax和asmx的联用。
基本思路是,先点击一个按钮,弹出一个弹窗提示,按钮disable,Ajax传输数据到asmx处理,asmx处理成功后返回0、1的标识,Ajax再接受标识后显示按钮和关掉弹窗。
弹窗是使用了公司的一个弹窗,不是自己写的。
HTML页面
<input type="button" id="btsave" onclick="Submitcheck()" value="提交/Save" class="btn-primary" style="text-decoration: none; height: 25px;" />
js
function Submitcheck() { if (document.getElementById("txquantity").value == "") { alert("Please fill in the Quantity(请填写购买数量)"); return false; } $("#btsave").hide(); $.Dialog('Searchff', null, null, 520, 80); var userid = document.getElementById("iuserid").value; var username = document.getElementById("iusername").value; $.ajax({ type: "POST", url: "WebService1.asmx/Submit", //contentType: "application/json; charset=utf-8", //dataType: "json", dataType: "xml", data: { iuserid: userid, iusername: username//只传递了部分字段 }, //async: false, success: function (result) { var my = $(result).find("string").text();//很重要的解析 if (my == "1") { $.DialogClose('Searchff', null, null, 520, 80); alert("下单成功,我们会尽快帮您处理/Order Success"); $("#btsave").show(); } else { $.DialogClose('Searchff', null, null, 520, 80); alert("下单失败,请联系客服/Order failure,Contact customer service"); $("#btsave").show(); } }, error: function () { alert("Exception(系统异常)"); } }); }
contentType: "application/json;charset=utf-8",//有这条报“请求格式无效
这个可能后asmx返回的是xml格式相冲突吧。
//async: false,是否异步,有这句话会不能success结果处理的。
asmx页面
[WebMethod] public string Submit(string iuserid, string iusername) { string userid = iuserid; string returnstring = "1"; try { #region 获取orders信息 Orders orders = new Orders(); orders.orderid = userid + DateTime.Now.ToString("yyyyMMddHHmmss"); orders.userid = Convert.ToInt32(userid); orders.username = iusername; #endregion #region 插入数据库 bool adflag = new OrdersBLL().Add(orders); if (adflag) { //购买成功后清除部分填写信息 //txquantity.Value = ""; //tbremark.Text = ""; // return; } else { returnstring = "0"; return returnstring; } #endregion #region 组装邮件 var strFileCn = File.ReadFile(Server.MapPath("order_model.html"), "utf-8"); strFileCn = strFileCn.Replace("#orderid#", orders.orderid); strFileCn = strFileCn.Replace("#username#", orders.username); var att = new string[1]; att[0] = ""; var strRocFileName = "Adjunct/ROC/" + orders.orderid + ".htm"; strRocFileName = Server.MapPath(strRocFileName); try { File.WriteFile(strRocFileName, strFileCn, "utf-8"); } catch (Exception) { return "0"; } string strsendto = iemail; //应该是发送给固定的邮箱,需要提供 if (File.Net_Email(strsendto, "", "", strFileCn, "iTourbagSoftCard Commodity order sheet.", att, "", "") == "1") { File.SysLogAdd(1, iusername, 1, "订单提交成功,系统自动发送邮件,我们会尽快帮您处理" + strsendto, ip); } #endregion } catch (Exception ex) { returnstring = "0"; return returnstring; } return returnstring; }代码不全,只是提示怎么使用。
一番辛苦,忙这个差不多忙了半天,好多东西都要百度,也差点想半途放弃,冒出了两个想法,一个是asmx传值和获取值的时候那么写,是因为不会写JSON,二是注释async: false这句话,刚开始发现它在的时候,处理显示的效果好像是点击按钮,等按钮事件处理完在弹出提示的,突然想起这句话好像和异步有关,就注释点试试看的,没想到还真成了。还是学的不好啊。还有将解析result的时候,试了好多方法,发现都没有结果,现在回想应该是方法错了,当时使用的方法基本上是解析JSON的,这里asmx返回的是xml,然后百度js使用Ajax和asmx,看到JQuery中ajax,get方法在ashx,aspx,asmx中的使用一文,发现了自己的问题(我转载了这篇文章),及时改了过来。
相关文章推荐
- JQuery中ajax,get方法在ashx,aspx,asmx中的使用
- JQuery中ajax,get方法在ashx,aspx,asmx中的使用
- jquery的get,post和ajax方法的使用
- jquery中get,post和ajax方法的使用小结
- jQuery的ajax()检验用户名;通过jQuery的load()/get()/post()方法实现;使用XMLHTTPRequest对象来进行AJAX的异步数据交互
- jquery的get,post和ajax方法的使用
- Jquery中 $.get(),$.post(),$.ajax(),$.getJSON()方法的使用与区别
- 在JQuery中可以使用get,post和ajax方法给服务器端传递数据
- jquery中get,post和ajax方法的使用小结
- 使用jQuery的ajax方法向服务器发出get和post请求的方法
- JQuery的get、post和ajax方法的使用
- jquery的get,post和ajax方法的使用
- jquery之ajax之$.get方法的使用
- 前端使用Jquery的getJSON方法,后台使用PHP,解决IE和火狐Firefox中存在的跨域ajax请求问题。
- Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的使用方法总结
- JQuery的Ajax使用Get,Post方法调用C#WebService并返回数据
- jQuery.ajax的使用方法
- jQuery UI Autocomplete 使用 ajax 方法传输Json数据出现乱码问题的解决
- Ajax的Get、Post方法的使用
- JQuery中getJSON的使用方法