AJAX做登录出错。谷歌提示错误信息500

fada801 2011-12-02 01:18:59
这是html
<div id="login">
用户名:<input type="text" id="u_name" />
密码:<input type="password" id="u_password" />
<input type="button" id="butlogin" onclick="login();" value="登 录"/>
<input type="button" value="注 册"/>
</div>


这是JS
function login(){
var name = $("#u_name").val();
var password = $("#u_password").val();
if (name == "" || password == "") {
alert("用户名和密码不能为空!");
}
else {
$.post("Ajax/loginHandler.ashx", { "name": name, "password": password }, function (data, status) {
alert(status);
if (status == "success") {
if (data == "OK") {
alert("密码正确!登录成功!");
}
else {
alert("密码错误!登录失败!");
$("#u_name").val("");
$("#u_password").val("");
$("#u_name").focus();
}
}
else {
alert("出错了!请重试!");
}
})
}
}




这个ajax
<%@ WebHandler Language="C#" Class="login" %>

using System;
using System.Web;
using BBS.BLL;

public class login : IHttpHandler {

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
user user=new BBS.BLL.user();
user.user_name = context.Request.Form["name"];
user.user_password= context.Request.Form["password"];
int i = BBS.BLL.user.login(user);
if (i == 1)
{
context.Response.Write("OK");
}
}

public bool IsReusable {
get {
return false;
}
}

}


user.login()方法
        public static int login(user user)
{
StringBuilder sqlstring = new StringBuilder(); ;
sqlstring.Append("sqlect * from BBS_User where user_name=@user_name and user_password=@user_password");
SqlParameter[] parameters ={
new SqlParameter("@user_name",SqlDbType.NVarChar,20),
new SqlParameter("@user_password",SqlDbType.NVarChar,20)
};
parameters[0].Value = user.user_name;
parameters[1].Value = user.user_password;
int i = DAL.SqlServerHelp.ExecuteNonQuery(sqlstring.ToString(), parameters);

return i;
}


数据层

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Configuration;

namespace BBS.DAL
{
public class SqlServerHelp
{
public static string connectionString=BBS.DAL.sqlconnectionstring.connectionstring();

public static int ExecuteNonQuery(string sqlstring,params SqlParameter[] parameter)
{
using(SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand com = new SqlCommand();
ParameterCom(con, com, sqlstring, parameter);
int i = com.ExecuteNonQuery();
return i;
}
}

public static void ParameterCom(SqlConnection con, SqlCommand com, string sqlstring, params SqlParameter[] Parameter)
{
if (con.State != ConnectionState.Open)
con.Open();
com.Connection = con;
com.CommandText = sqlstring;
com.CommandType = CommandType.Text;
if (Parameter != null)
{
foreach (SqlParameter parameter in Parameter)
{
if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && parameter.Value == null)
{
parameter.Value = DBNull.Value;
}
com.Parameters.Add(parameter);
}
}
}
}
}
...全文
17068 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2011-12-02
  • 打赏
  • 举报
回复
你动态页有问题。。和浏览器没关系

而且$.post必须是你动态页返回200状态才会执行回调,更多控制使用$.ajax来发送请求
fada801 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zsx841021 的回复:]

引用 1 楼 zsx841021 的回复:

然后呢。。错误是什么啊

错了是哪一行提示有错啊
[/Quote]
就是没办法运行,点击没反应,谷歌提示500错误
fada801 2011-12-02
  • 打赏
  • 举报
回复
Failed to load resource: the server responded with a status of 500 (Internal Server Error)……
Ajax/loginHandler.ashx
VS不提示错误。我要谷歌调试工具看到的
三石-gary 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zsx841021 的回复:]

然后呢。。错误是什么啊
[/Quote]
错了是哪一行提示有错啊
三石-gary 2011-12-02
  • 打赏
  • 举报
回复
然后呢。。错误是什么啊
Go 旅城通票 2011-12-02
  • 打赏
  • 举报
回复
先不用ajax先,用表单提交到ashx页面看看到底是什么错误,更正后再用ajax

500就是你动态页有问题

或者改成$.ajax,增加error回调,看服务器返回什么错误内容
$.ajax({url:'Ajax/loginHandler.ashx',data:{ "name": name, "password": password }
,success:function(data,status){
///.........
}
,error:function(xhr){alert('动态页出错\n\n'+xhr.responseText);}///////////增加错误回调,看什么问题
});
fada801 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 showbo 的回复:]

你动态页有问题。。和浏览器没关系

而且$.post必须是你动态页返回200状态才会执行回调,更多控制使用$.ajax来发送请求
[/Quote]
应该和你说的没关系。因为我改一下AJAX里面的内容就可以返回。调用三层类就不行了!
fada801 2011-12-02
  • 打赏
  • 举报
回复
$.ajax可以解决这个问题吗?我用的是三层。只要不调用三层里面的方法和类。就能返回值,比如在ajax做个简单的判断就可以,一调用就不行!

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧