【问题标题】:jquery, Autocomplete URL call using ajax not workingjquery,使用ajax的自动完成URL调用不起作用
【发布时间】:2019-01-03 13:00:30
【问题描述】:

我正在使用 Jquery 对我的文本框实现自动完成,我使用了 Ajax 调用,但是我的 ajax url 不起作用。

当我检查时显示此错误 -> POST http://localhost:51444/Searchoperation/searchvalues 404 (Not Found)

我的 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 调用不起作用。请帮助

【问题讨论】:

  • 我希望你在 searchvalues 方法之前声明了 [WebMethod]。你在用asp.net c#吗?
  • 添加了 WebMethod.still not working,仍然同样的错误@JitendraRangpariya
  • 你在用asp.net c#吗?
  • 是的@JitendraRangpariya

标签: javascript c# jquery ajax


【解决方案1】:

尝试在路径的开头使用斜杠(“/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]
                                }
                            }));
                        },

....

【讨论】:

    【解决方案2】:

    您缺少页面扩展名 (.ASPX)。如下所示替换 ajax 属性 URL,

    url: "Searchoperation.aspx/searchvalues"

    另外,请确保您在 searchvalues 方法之前添加了 [WebMethod]。

    我希望这会有所帮助。

    【讨论】:

    • 页面扩展名是 .cs @Jitendra Rangpariya
    • 正如你所说,你使用的是 asp.net c#,所以我希望前端页面是你写过的 ASPX &lt;input id="myInput" type="text" name="myCountry" placeholder="SearchName" &gt;
    • 它在 aspx @Jitendra Rangpariya
    • 请按照我的回答实际操作,如果不起作用,请告诉我。
    • 我想调用cs页面而不是aspx页面。这就是发生此错误的原因。@Jitendra Rangpariya
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 2017-03-26
    • 2012-11-02
    • 1970-01-01
    • 2015-06-08
    • 2014-04-28
    • 2011-01-05
    相关资源
    最近更新 更多