日期:2014-05-18  浏览次数:20499 次

求助~~!用jquery的ajax方法调用其他页面的后台指定的方法始终不行
我不想在cs文件的pageload里面去判断什么request["***"] ==null之类的之后再去调用这个cs里的方法~
~上面这种方式能执行~没有问题~
~我想直接通过.ajax()方法直接调用标注为[webmethod]的后台方法但是断点始终不会跳到那个方法里面去~~
请各位帮帮忙~帮我看下

环境:
windows 2003 vs2008 sp1 jquery1.4.2



html:


<script language="javascript" type="text/javascript">
function logon() {
  var nametxt = $("#name").val();
  nametxt = $.trim(nametxt);
  var pwdtxt = $("#pwd").val();
  pwdtxt = $.trim(pwdtxt);

  $.ajax({ type: "post", url: "Login.aspx/UserLogin", data: { "name":nametxt, "pwd":pwdtxt}, dataType: "text", success: function(txt) {
  alert(txt);
  }
  });





  tb_remove();
  }
</script>


<input type="button" onclick="logon();" value="登录" />


Login.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;

public partial class Login : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }

  [WebMethod]
  public string UserLogin(string name, string pwd)
  {
  if (name == "123" && pwd == "123") return "success";
  else return "用户名或密码错误!";

  }

}

------解决方案--------------------
jq这个方法没用过!偶还是用原始的httpRequest

哎 out 了
------解决方案--------------------
探讨
Login.aspx/UserLogin

这个什么意思??

UserLogin/Login.aspx

这样的吧?

------解决方案--------------------
楼主可以将WebMethod换成一般处理程序(ashx)试试看

------解决方案--------------------
function Tip(data)
{
if(data=='0')
{

}
else
{
alert("用户名不可用,请尝试其他名称");
document.getElementById("useraccount").value="";

}

}
$(document).ready(function(){
$("#useraccount").blur(function(){
if(validateUserName()==false)
{

}
else
{
var name = $("#useraccount").val();
$.ajax({
type:"POST",
url:"CheckUserName.ashx",
data:{username:name},
success:Tip
})
}

})
})
后台代码:
<%@ WebHandler Language="C#" Class="CheckUserName" %>

using System;
using System.Web;
using System.Collections.Generic;

public class CheckUserName : IHttpHandler {

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string username = context.Request.Params["username"].ToString();
int flag = Check(username);
context.Response.Write(flag.ToString());
}

public int Check(string name)
{
int flag = 0;
List<YD.Model.F_RedistUser> userlist = new YD.BLL.F_RedistUser().GetList("*", "ispass=0 and uid='"+name.Trim()+"'","");