积极答复者
JQuery调用WebService回调问题

问题
-
试了两天了..每次调用的结果都是进入error处理函数,说死都不执行回调函数..在网上查找了N多资料,也试了N多的方法,都不行
我用VS2005,建立的网站没有使用AJAX1.0扩展库.
以下是WebMethod,我肯定已经引用了[System.Web.Script.Services.ScriptService][WebMethod] public string HelloWorld() { return "HelloWorld"; }
<script language="javascript" type="text/javascript"> $(document).ready(function(){ $.ajax({ type: "POST", contentType: "application/json;charset=utf-8",
实在是找不到原因了...郁闷的要死...
url: "../web/WebService.asmx/HelloWorld",
data: "{}",
dataType: 'json', success: function(result){
alert(result.d); }, error:function(res,text){ alert(text); } }); }); </script>- 已编辑 掌握星辰 2009年12月7日 5:00 代码复制错了
答案
全部回复
-
复制粘贴即可 注意啊 我的asmx文件名是WebService1.asmx 请更改成你的文件名
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$.ajax({
type: "POST",
contentType: "application/json",
url: "../web/WebService1.asmx/HelloWorld",
data: "{}",// data: "{paraName:paraValue}",
dataType: 'json',
success: function(result) {
alert(result.d);
},
error: function(res) {
alert(res);
}
});
});
</script> -
为了使用[System.Web.Script.Services.ScriptService]我引用了System.Web.Extensions和System.Web.Extensions.Design类库,因为在.NET2.0不打AJAX1.0类库补丁的情况下是使用不了[System.Web.Script.Services.ScriptService]的.而且,我不是很清楚,在这种情况下是不是需要配置web.config
webservice中的代码如下:using System; using System.Web; using System.Collections; using System.Web.Services; using System.Web.Services.Protocols; /// <summary> /// WebService 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { public WebService() { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public string GetLink() { System.Collections.Generic.List<Model.FriendLinkInfo> list = BLL.FriendLinkManager.GetFriendLink(); System.Text.StringBuilder str = new System.Text.StringBuilder(); foreach (Model.FriendLinkInfo fli in list) { str.Append(fli.SiteUrl + "|" + fli.SiteName + ","); //str += "<a href='" + fli.SiteUrl + "' alt='" + fli.SiteName + "'>" + fli.SiteName + "</a>"; } return "{link:'" + str.ToString() + "'}"; } [WebMethod] public string HelloWorld() { return "{link:'HelloWorld'}"; } }
我用的页面是HTML格式,脚本也写在里面了,代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <meta http-equiv="Content-Type" content="text-html;chaerset=utf-8" /> <title>无标题页</title> <script language="javascript" type="text/javascript" src="../web/Template/js/jquery.js"></script> <script language="javascript" type="text/javascript"> $(document).ready(function(){ $.ajax({ type: "POST", contentType: "application/json", url: "../web/WebService.asmx/HelloWorld", data: "{}",// data: "{paraName:paraValue}", dataType: 'json', success: function(result) { alert("aaa"); //alert(result.d); }, error: function(res) {alert("bbb"); //alert(res + " aaa"); } }); }); </script> </head> <body> <div id="link"><strong>友情链接:</strong> </div> </body> </html>
天高云淡,月冷风清,一人孤独的守候.希望有一片心灵的净土,忘却尘世的喧嚣,慢慢展现一种曾经向往的生活.