js调用webservices报错webservices未定义 在线等解答
using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Linq;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;using System.Xml.Linq;using System.Web.Script.Services;using System.Collections.Generic;namespace WebApplication1.App_Code{ /// <summary> /// WebService1 的摘要说明 /// </summary> [WebService(Namespace = "http://www.hodoja.com/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 [System.Web.Script.Services.ScriptService] public class WebService1 : System.Web.Services.WebService { public WebService1() { } [WebMethod(EnableSession=true)] public List<Model.UserInfo> GetAll() { return new BLL.UserManager().GetAll(); } [WebMethod(EnableSession = true)] public Model.UserInfo LoginUser(string uname, string upwd) { return new BLL.UserManager().LoginUser(uname,upwd); } }}function LoginUser(){ var uname = document.getElementById("txtUname").value; var upwd = document.getElementById("txtUpwd").value; WebService1.LoginUser(uname,upwd,WebServiceSucceededMethod,WebServiceFailedMethod,LoginUserCallBack) }function LoginUserCallBack(result){ if(result !=null) { alert("成功"); } else alert("失败");}//WebService调用成功时回调的函数function WebServiceSucceededMethod(result, callback){ try{ if (callback != null) callback(result); } catch(err){ if (top.debug) { alert('错误:'+err.message) } }}//WebService调用失败时回调的函数function WebServiceFailedMethod(result, callback){ try{ if (callback != null) { callback(result); } else { alert('网络错误,请稍候再试!'); } } catch(err){ if (top.debug) { alert('错误:'+err.message) } else { alert('网络错误,请稍候再试!'); } }}
</div>
</form>
</body>
</html>
[解决办法]
你可以在页面放一个javascriptmanager控件,使用ajax框架代码实现
后台CS文件
/// <summary>
/// 检查用户名是否占用
/// </summary>
/// <param name="userName">输入的附件名</param>
/// <returns>检查结果,为“ok"或出错信息</returns>
[System.Web.Services.WebMethod]
public static string IsFileNameExist(string userName)
{
System.Threading.Thread.Sleep(3000);
if (BLL.UsersBLL.IsValidataUserName(userName) == false)
{
return "ok";
}
else
{
return "对不起,你输入的用户名" + userName + "已被占用,请输入其他名字后再试";
}
}
js 文件里用
PageMethods.IsFileNameExist(document.getElementById(sid).value, DealWithResult);
方法调用后台代码
[解决办法]
WebService1.LoginUser(uname,upwd,WebServiceSucceededMethod,WebServiceFailedMethod,LoginUserCallBack) 改成:
WebApplication1.App_Code.WebService1.LoginUser(uname,upwd,WebServiceSucceededMethod,WebServiceFailedMethod,LoginUserCallBack)......即加上命名空间....
[解决办法]
你webservice返回的数据类型,我看好像也不对,要序列化,返回自己定义的类
http://www.cnblogs.com/lxinxuan/archive/2007/05/24/758317.html
这个你看看