首先继续鄙视一下坑爹的,对自己的无知继续表示极度的无语
一个非常简单的在ajax中的web service调用
首先取一个自定义的web services备用
[WebService(Namespace = "/",Description="test")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][ponentModel.ToolboxItem(false)]// 若要允许使用 AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。[System.Web.Script.Services.ScriptService]public class MyWebService : System.Web.Services.WebService{[WebMethod]public string Merge(string a, string b){return a + b;}}
注意其中的[System.Web.Script.Services.ScriptService],这是必须的
然后是AJAX出场
1 <input id="txt1" size="5" type="text" /> + 2 <input id="txt2" size="5" type="text" /> = 3 <input id="txt3" size="10" type="text" /> 4 <input type="button" value="Merge" onclick="MergeIt()" /> 5 6 <script type="text/javascript"> 7 function MergeIt() { 8 new MyWebService.Merge($get("txt1").value, $get("txt2").value, MergeComplete); 9 }10 function MergeComplete(result) {11 $get("txt3").value = result;12 }13 </script>
前面四行2个输入框,一个结果显示框,一个提交按钮
script内是JS调用的代码,MergeIt()是数据传送,调用webService的方法,多出的一个参数是结果返回用来显示数据的JS方法名
$get是document.getElementById的缩写 对JS一窍不通,真真心烦
1<asp:ScriptManager ID="ScriptManager1" runat="server">2<Services>3 <asp:ServiceReference Path="MyWebService.asmx" />4</Services>5 </asp:ScriptManager>
在ScriptManager控件的Services集合属性里添加服务引用MyWebService.asmx
ready?Go!
撞墙上了
Microsoft JScript 运行时错误: “MyWebService”未定义
左思右思,均不得解
百度。。。。有高人解:此处需在所引用的WebService前加nameSpace名称,我这里的nameSpace是Webtest,so
1<script type="text/javascript">2 function MergeIt() {3 new Webtest.MyWebService.Merge($get("txt1").value, $get("txt2").value, MergeComplete);4 }5 function MergeComplete(result) {6 $get("txt3").value = result;7 }8 </script>
但为什么要这样,还是不懂耶,还望高手赐教!