manish-gusain8909 Ответов: 2

Как вызвать функцию code behind с веб-страницы с помощью javascrip, ajax


я написал функцию function, которую хочу вызвать с помощью javascript, ajax.

Что я уже пробовал:

код веб-страницы

<script type = "text/JavaScript">
       
             function statebind() {
                  $.ajax({
                     type: "POST",
                     url: "TestAjax.aspx.cs/bindstate",
                     data: JSON.stringify({ username: $('#ddlCountry').val() }),
                     contentType: "application/json; charset=utf-8",
                     dataType: "json",
                     success: function (data) 
                     {
                         if (data) 
                        {
                            toastr.success('Congratulations! Username is available.');
                        }
                        else 
                        {
                            toastr.error('Please choose another Username!');  
                            $('#txtUsername').focus();
                        }
                   },
                    error: function (data) 
                   {
                   }
                 });
              }
  </script>


Код C#

[System.Web.Services.WebMethod]
       public static void bindstate(string id)
       {
           try
           {
               OracleDataReader dr;
               string connectionString = ConfigurationManager.AppSettings["ConnectionString"];
               OracleConnection conn = new OracleConnection(connectionString);
               conn.Open();
               String Str = "select STATE_ID,STATE_NAME from com_state_master where COUNTRY_ID="+id;
               OracleCommand cmd = new OracleCommand(Str, conn);
               dr = cmd.ExecuteReader();
               conn.Close();
           }
           finally
           {
           }
       }


   }

StM0n

Знаете ли вы, что открываете свой сайт для SQL-инъекции? параметр & lt;id> - Это простая строка,которая просто соединяется с оператором.

2 Ответов

Рейтинг:
1

Karthik_Mahalingam

сделайте это как static метод и добавить WebMethod Приписывать ему.

[WebMethod]
public  static void bindstate(string id)
{
}


ваш код уязвим для SQL-инъекция[^] атака, всегда используй Параметризованный запрос для предотвращения атак SQL-инъекций[^]


Рейтинг:
0

Tausif/Pintu

Просто объявите свой метод bindstate() как WebMethod, например

[System.Web.Services.WebMethod]
public  void bindstate(string id)
        {
            try
            {
                string connectionString = ConfigurationManager.AppSettings["ConnectionString"];
                OracleConnection conn = new OracleConnection(connectionString);
                conn.Open();
                String Str = "select STATE_ID,STATE_NAME from com_state_master where COUNTRY_ID="+id;
                OracleCommand cmd = new OracleCommand(Str, conn);
                ddlState.DataSource = cmd.ExecuteReader();
                ddlState.DataTextField = "COUNTRY_NAME";
                ddlState.DataValueField = "COUNTRY_ID";
                ddlState.DataBind();
                conn.Close();
            }
            finally
            {
            }
        }


manish-gusain8909

я пробовал, но это не работает