jquery, автозаполнение URL-вызова с использованием ajax не работает - PullRequest
0 голосов
/ 03 января 2019

Я использую Jquery для реализации автозаполнения моего текстового поля, я использовал Ajax-вызов, но мой URL-адрес ajax не работает.

Когда я проверяю, отображается эта ошибка -> POST http://localhost:51444/Searchoperation/searchvalues 404 (не найдено)

Мой код HTML и код сценария

    <script>
        $('#myInput').keyup(function (event)
        { 
            var searchname = $('#myInput').val()
            $('#myInput').autocomplete(
            {  
                scroll: true,  
                selectFirst: false,  
                autoFocus: false,  
                source: function(request, response)  
                {  
                     $.ajax({
                         type: "POST",
                         contentType: "application/json; charset=utf-8",
                         url: "Searchoperation/searchvalues",
                         data: "{'Searchname':'" + searchname + "'}",
                         dataType: "json",
                         success: function (data) {
                            response($.map(data.d, function (item) {
                                return {
                                    label: item.split('/')[0],
                                    val: item.split('/')[1]
                                }
                            }));
                        },
                        error: function (result) { }
                     });
                },
          
                select: function (event, ui) {
                    var vll = ui.item.val;
                    var sts = "no";
                    var url = 'search_app.aspx?prefix=' + searchname; // ur own conditions  
                    $(location).attr('href', url);
                }
           })
      })
    </script>
<form autocomplete="off">
  <div class="search-field" style="width:300px;">-->
    <input id="myInput" type="text" name="myCountry" placeholder="SearchName" >
</div>
  <input type="submit">
</form>

Код для извлечения значений из базы данных

public List<string> searchvalues(string searchname)
    {
        try
        {
            List<string> result = new List<string>();
            string connectionstring = @"Data Source=DESKTOP-LTV06QJ\SQLEXPRESS;Initial Catalog=Search;Integrated Security=True";
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = "connection_string";
            conn.Open();
            SqlCommand cmd = new SqlCommand("Sp_Search", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@Emp_Name", searchname);
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                result.Add(string.Format("{0}/{1}", dr["Emp_id"], dr["Emp_Name"]));
            }
            conn.Close();
            return result;
        }

        catch (Exception ex)
        {
            return null;
        }


    }

значение, введенное в текстовое поле, читается, но ajaxЗвонок не работает. Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Вам не хватает расширения страницы (.ASPX).Замените URL-адрес атрибута ajax, как показано ниже,

url: "Searchoperation.aspx/searchvalues"

Кроме того, убедитесь, что вы добавили [WebMethod] перед методом searchvalues.

Надеюсь, это поможет.

0 голосов
/ 03 января 2019

попытаться использовать косую черту в начале пути ("/ Searchoperation / searchvalues"):

$.ajax({
                         type: "POST",
                         contentType: "application/json; charset=utf-8",
                         url: "/Searchoperation/searchvalues",
                         data: "{'Searchname':'" + searchname + "'}",
                         dataType: "json",
                         success: function (data) {
                            response($.map(data.d, function (item) {
                                return {
                                    label: item.split('/')[0],
                                    val: item.split('/')[1]
                                }
                            }));
                        },

....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...