asp.net中jQuery调用webService的有关问题
asp.net中jQuery调用webService的问题
就是一个登录验证数据正确性功能,首先我在点击登录的时候执行了下面的JS
然后我添加了一个AllWebService.asmx,并在App_Code中的AllWebService.cs文件中写了这个方法
问题是:无论我怎么点击登录按钮都不会进到CheckLoginInfo方法里面来
但是:我把CheckLoginInfo方法挪到Login.cs中,并在调用的时候写这个路径url:"Login.aspx/CheckLoginInfo",
这时候调用成功,请问大家怎么回事,我感觉既然写在本页没问题,那么总的来说我的方法是没问题,可能就是使用.asmx的时候有些东西没有配置好。希望大家指教。
难道是路径写错了吗?网站结构如下:
我用过url:"/AllWebService.asmx/CheckLoginInfo",url:"../AllWebService.asmx/CheckLoginInfo",
都没反应...
写的详细点,希望大家指教,最近发贴问的太多了,分不够了,只能给这么点了,各位不要介意
------解决方案--------------------
你参考一下我写的
就是一个登录验证数据正确性功能,首先我在点击登录的时候执行了下面的JS
- JScript code
function Redirect(Admin_Id,Admin_PassWord,CheckCode)//参数依次是用户名、密码、验证码 { var options= { type:"POST", data:"{Admin_Id:'"+Admin_Id+"',Admin_PassWord:'"+Admin_PassWord+"',CheckCode:'"+CheckCode+"'}", url:"/AllWebService.asmx/CheckLoginInfo", contentType:"application/json;charset=utf-8", dataType:"json", success:function(result) { if(result=="CheckCodeError") { alert("验证码输入错误,请检查!"); } else if(result=="AdminError") { alert("用户名或密码输入错误,请检查!") } else { window.location.href="Main.aspx?a="+result; } } }; $.ajax(options); }
然后我添加了一个AllWebService.asmx,并在App_Code中的AllWebService.cs文件中写了这个方法
- C# code
using System; using System.Web; using System.Collections; using System.Web.Services; using System.Web.Services.Protocols; using System.Web.Script.Services; using BLL; using Model; using System.Data; using Common; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.IO; using System.Text; /// <summary> /// AllWebService 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ScriptService] public class AllWebService : System.Web.Services.WebService { public AllWebService() { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } /// <summary> /// 判断用户名密码验证码是否正确 /// </summary> /// <param name="Admin_Id">用户名</param> /// <param name="Admin_PassWord">密码</param> /// <param name="CheckCode">验证码</param> /// <returns>CheckCodeError:验证码错误;AdminError:用户名或密码错误;其他:正确的用户名</returns> [WebMethod(EnableSession = true)] public static string CheckLoginInfo(string Admin_Id, string Admin_PassWord, string CheckCode) { string result = "Right"; if (String.Compare(HttpContext.Current.Session["CheckCode"].ToString(), CheckCode, true) != 0) { result = "CheckCodeError"; } else { Admin admin = new Admin(); admin.Admin_Id = Admin_Id; admin.Admin_PassWord = Admin_PassWord; BLL_Admin bll_admin = new BLL_Admin(); result = bll_admin.CheckAdmin(admin); } return result; } }
问题是:无论我怎么点击登录按钮都不会进到CheckLoginInfo方法里面来
但是:我把CheckLoginInfo方法挪到Login.cs中,并在调用的时候写这个路径url:"Login.aspx/CheckLoginInfo",
这时候调用成功,请问大家怎么回事,我感觉既然写在本页没问题,那么总的来说我的方法是没问题,可能就是使用.asmx的时候有些东西没有配置好。希望大家指教。
难道是路径写错了吗?网站结构如下:
我用过url:"/AllWebService.asmx/CheckLoginInfo",url:"../AllWebService.asmx/CheckLoginInfo",
都没反应...
写的详细点,希望大家指教,最近发贴问的太多了,分不够了,只能给这么点了,各位不要介意
------解决方案--------------------
你参考一下我写的
- C# code
$(document).ready(function () { var l_para = ""; var params = '{str:"' + l_para + '"}'; //此处参数名要注意和后台方法参数名要一致 $.ajax({ type: "POST", //提交方式 url: "yclcbmx.aspx/bindLeft", //提交的页面/方法名 data: params, //参数(如果没有参数:null) dataType: "text", //类型 contentType: "application/json; charset=utf-8", beforeSend: function (XMLHttpRequest) { //$('#shortcut_body').text("正在查询..."); }, success: function (msg) { $(eval("(" + msg + ")").d).appendTo("#shortcut_body"); //将返回来的项添加到下拉菜单中 }, error: function (xhr, msg, e) { alert("error"); } }); }); public static string bindLeft(string str) //方法是静态的 { oracleHelp oraHelp = new oracleHelp(); string flag = ""; StringBuilder sb = new StringBuilder(); }