首页 > 解决方案 > ASP.Net C# 不接收 ajax 数据

问题描述

大家好,我是 asp.net 的新手,我正在学习它作为 C#.NET。我正在使用 post 方法创建一个 ajax 请求,但是 C# 代码没有检测到我发送的数据来接收它们,这里是我的 ajax 请求代码:

var email = document.getElementById( "Email" ).value;
var pass = document.getElementById( "Password" ).value;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
    if ( this.readyState === 4 && this.status === 200 ) {
        if ( this.responseText === "Your Email address or password was incorrect." ) {
            document.getElementById( "error" ).innerHTML = this.responseText;
            var span = document.getElementsByClassName( "errors" );
            var input = document.getElementsByTagName( "input" );
            var i;
            for ( i = 0; i < span.length; i++ ) {
                span[i].classList.add( "required" );
            }
            for ( i = 0; i < input.length; i++ ) {
                input[i].value = "";
            }
        } else {
            document.getElementById( "response" ).innerHTML = this.responseText;
        }
    }
};
xmlhttp.open( "POST", "asp/PostTest.aspx", false );
xmlhttp.setRequestHeader( "content-type", "application/x-www-form-urlencoded" );
xmlhttp.send( "email=" + email + "&pass=" + pass );

这是我接收数据的 C#.NET 代码:

if ( HttpContext.Current.Request.HttpMethod == "POST" ) {
            if ( Request.QueryString [ "email" ] != null && Request.QueryString [ "pass" ] != null ) {
                sql += "@EMAIL = '" + Request.QueryString [ "email" ].ToString ( ) +
                "' , @U_PASSWORD = '" + Request.QueryString [ "pass" ].ToString ( ) + "';";

                SqlCommand sqlCommand = conn.CreateCommand ( );
                sqlCommand.CommandType = CommandType.Text;
                sqlCommand.CommandText = sql;
                sqlCommand.ExecuteNonQuery ( );
                DataTable dataTable = new DataTable ( );
                SqlDataAdapter sqlDataAdapter = new SqlDataAdapter ( sqlCommand );
                sqlDataAdapter.Fill ( dataTable );
                responseText = "<table>" + 
                "<tr><td>Id</td><td>Email</td></tr>";
                foreach ( DataRow dataRow in dataTable.Rows ) {
                responseText += "<tr><td>" + dataRow [ "id" ].ToString ( ) +
                    "</td><td>" + dataRow [ "email" ].ToString ( ) + "</td></tr>";
                }
                responseText += "</table>";
                //SqlCommand sqlCommand = new SqlCommand ( sql , conn );
                //SqlDataReader sqlDataReader = sqlCommand.ExecuteReader ( );
                //while ( sqlDataReader.Read ( ) ) {
                //  responseText = "" + sqlDataReader.GetString ( sqlDataReader.GetOrdinal ( "email" ) ) +
                //      " " + sqlDataReader.GetString ( sqlDataReader.GetOrdinal ( "u_password" ) );
                //}
                } else {
                    responseText = "No Date received"
                }
            } else {
                responseText = "No request received";
            }
        } catch ( Exception exp ) {
            Response.Write ( exp.Message );
        }
        Response.Write ( responseText );

注意:我总是收到“没有收到日期”的消息

标签: javascriptc#.net

解决方案


推荐阅读