Login Page using ASP.Net & Ajax
Login Page using ASP.Net & Ajax
我正在尝试使用html、ajax&ASP.NET。数据确实传递给了ajax函数,但当我调试ASP页面时,用户名和密码会以NULL发送。该代码应该采用username&password然后返回userid
Html页面:
<div id="usernameid">Username:</div><input id="username" type="text"/> <span id="username_status"></span>
<div id="passwordid">Password:</div><input id="password" type="password"/> <span id="password_status"></span>
<div> <input id="loginbutton" onclick="UserLogin()" type="submit" value="Submit" /></div>
Javascript:
function UserLogin() {
var postData = JSON.stringify({ "username": JSON.stringify($("#username").val()), "password": JSON.stringify($("#password").val()) });
alert(postData);
$.ajax({
type: "GET",
url: "http://localhost:49317/LoginPageForLearn.aspx",
data: postData,
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
jsonp: 'jsoncallback',
success: callbackfunction,
error: function (msg) { alert(msg); }
});
}
function callbackfunction(datacoming) {
localStorage["UserID"] = datacoming;
alert(datacoming);
Asp.net页面:
protected void Page_Load(object sender, EventArgs e)
{
string userName = "";
int userId = -1;
string PassWord = "";
if (Request.QueryString.Count != 0 && Request.QueryString["username"] != string.Empty && Request.QueryString["password"] != string.Empty)
{
userName = Request.QueryString["username"];
PassWord = Request.QueryString["password"];
userId = GetUserID(userName, PassWord);
}
}
你知道为什么数据传递不正确吗?或者,对于如何使用html创建登录页面并在SQL中访问数据,您有其他想法吗。
非常感谢。
您可以创建一个PageMethod:
[WebMethod]
public static bool MyMethod(string username, string password)
{
...
return true;
}
然后去掉双重JSON字符串化并调用页面方法:
var postData = JSON.stringify({
"username": $("#username").val(),
"password": $("#password").val()
});
$.ajax({
type: "POST",
url: "LoginPageForLearn.aspx/MyMethod",
data: postData,
contentType: "application/json; charset=utf-8",
success: callbackfunction,
error: function (msg) { alert(msg); }
});
在回调中,您可以测试页面方法的结果:
function callbackfunction(result) {
if (result.d) {
alert('success');
}
}
它不是那样工作的。您还必须返回一些内容,以便通知客户端身份验证成功或失败。您必须考虑编程工作流程。
您可以在所调用的页面中创建一个静态方法,该方法返回Bool或JSON形式的值。大致如下:
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static bool Authenticate JsonMethod(int username, string password)
{
bool isAuthenticated = // some method to authenticate
return isAuthenticated;
}
你的AJAX看起来像这样:
$.ajax({
type: "GET",
url: "http://localhost:49317/LoginPageForLearn.aspx/Authenticate",
data: postData,
contentType: "application/json; charset=utf-8",
dataType: "jsonp"
});
在你的成功或失败回电中,你将从那里评估你想用返回的价值做什么。
无论如何,处理程序可能会更好,因为它不包含不必要的标记。
相关文章:
- 使用ajax的服务器端分页&jQuery
- 无法使用AJAX&PHP
- Richfaces&Ajax-Cufon字体替换
- Jquery&Ajax表单验证功能
- Jquery、AJAX&PHP,表单提交不起作用
- OnlineExam中的countdowntimer随时间的流逝自动提交&通过AJAX&如果页面刷新,则
- 是php json_encode&AJAX破坏了我的数组
- jQuery添加/删除类&AJAX不起作用
- 使用Jquery上载文件时出错&ajax
- 当只需要遍历DOM时,$.ajax&延期
- AJAX修改DOM&调用函数
- php&ajax检索post数据失败
- 在ajax中使用post方法和perl脚本&参数
- rails应用程序中的AJAX请求错误:xhr.send((options.hasContent&&op
- 通过ajax向服务器添加评论&当前网页
- Ajax表单提交&Javascript确认错误
- 添加行&通过ajax提交数据
- 被迫处理一个&在XML文件中,试图解决解析错误$.ajax({..})
- Ajax帖子不发布“&"信
- Ajax从JSON返回未定义-登录系统&最佳实践