初学ajax 一个简单的功能,调试了2个小时,代码如下虽然成功了 但是有错误
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta charset="utf-8" />
<link href="css/bootstrap.css" rel="stylesheet" />
<script src="scripts/jquery-1.11.3.min.js"></script>
<script>
$(function () {
$("#btnLogin").click(function () {
if ($("#txtName").val() == "") {
alert("用户名不能为空");
return false;
}
$.ajax({
type: 'POST',
url: "Login.ashx",
data: { userName: $("txtName").val(), userPwd: $("txtPwd").val() },
success: function (data) {
alert(data);
},
datatype:Text
})
})
})
</script>
</head>
<body class="container">
<div class="group">
<label class="control-label">用户名</label>
<input id="txtName" class="form-control" name="txtName" />
</div>
<div class="group">
<label class="control-label">密码</label>
<input id="txtPwd" class="form-control" name="txtPwd" />
</div>
<button id="btnLogin" class="btn-group" name="btnLogin">登录</button>
<button id="btnReset" class="btn-group" name="btnReset">重置</button>
</body>
</html>
后台就是 新建 个一般处理程序 helloword
后来 dataType 换成 json 结果就不对了
在测试发现。。。json要用引号引起来
看文档
dataType
类型:String
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:
- "xml": 返回 XML 文档,可用 jQuery 处理。
- "html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
- "script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
- "json": 返回 JSON 数据 。
- "jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
- "text": 返回纯文本字符串
字符串。。。字符串。。。字符串 重要的事说三便 也就是 我前边的text也是错的 虽然 出来了正确的结果
再说第二个问题 传过去后登录 收不到值 。。。。又检查 。。。。$("txtName")少个#号 。。这是一个id啊 这是一个id
最后前台成这样了
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta charset="utf-8" />
<link href="css/bootstrap.css" rel="stylesheet" />
<script src="scripts/jquery-1.11.3.min.js"></script>
<script>
$(function () {
$("#btnLogin").click(function () {
if ($("#txtName").val() == "") {
alert("用户名不能为空");
return false;
}
var username = $("#txtName").val();
var userpwd =$("#txtPwd").val();
//$.ajax({
// type: 'POST',
// url: "Login.ashx",
// data: {userName: $("txtName").val(),userPwd: $("txtPwd").val() },
// success: function (data) {
// alert(data);
// }
// //datatype:"json"
//})
alert(username+userpwd);
$.post("Login.ashx", { UserName:username, UserPass:userpwd }, function (result) {
alert(result);
});
})
})
</script>
</head>
<body class="container">
<div class="group">
<label class="control-label">用户名</label>
<input id="txtName" class="form-control" name="txtName" />
</div>
<div class="group">
<label class="control-label">密码</label>
<input id="txtPwd" class="form-control" name="txtPwd" />
</div>
<button id="btnLogin" class="btn-group" name="btnLogin">登录</button>
<button id="btnReset" class="btn-group" name="btnReset">重置</button>
</body>
</html>
.net 一般处理程序代码 如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
namespace UI
{
/// <summary>
/// Login 的摘要说明
/// </summary>
public class Login : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string userName = context.Request.Form["userName"]==null ?"":context.Request.Form["UserName"].ToString();
string userPwd = context.Request.Form["UserPass"] == null ?"" : context.Request.Form["UserPass"].ToString();
using (SqlConnection con = new SqlConnection("server =.;uid=sa;pwd=123;database=LT"))
{
using (SqlCommand cmd = new SqlCommand())
{
string s = string.Format("select Count(1) cnt from users where userName ='{0}' and pwd='{1}'", userName, userPwd);
cmd.CommandText = s;
cmd.Connection = con;
con.Open();
int cnt = int.Parse( cmd.ExecuteScalar().ToString());
if (cnt == 1)
{
context.Response.Write(userName+userPwd+"登录成功"+s);
}
else
{ context.Response.Write(userName+ userPwd + "登录失败"+s); }
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
一定要细心
但 有时由于以前的习惯,只是细心是不能解决的,这个需要靠长时间的积累了~~
要多做、多写、多看。