【问题标题】:My jquery ajax call is not working when I call web services which retrieves data from database当我调用从数据库中检索数据的 Web 服务时,我的 jquery ajax 调用不起作用
【发布时间】:2015-06-18 03:04:47
【问题描述】:

事实上,我是第一次使用 jquery ajax 调用,我在这里遇到了一个问题,我的 web 服务正在运行,但是由于某种原因,当我尝试从 jquery ajax 调用它时,无法检索数据。

拜托我已经为此工作了一整天,今晚我需要完成它。

我的网络方法是这样的:

public Didyoumean SayHello(string search)
    {
        Didyoumean Didyoumean = new Didyoumean();
        string cs = ConfigurationManager.ConnectionStrings["testConnectionString"].ConnectionString;
        using(SqlConnection con = new SqlConnection(cs))
        {
            SqlCommand cmd = new SqlCommand ("USP_DidYouMean",con);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter parameter = new SqlParameter("@search",search);
            cmd.Parameters.Add(parameter);
            con.Open();
            SqlDataReader reader = cmd.ExecuteReader();
            while(reader.Read())
            {
                Didyoumean.SearchInput = reader["detail"].ToString();
            }
            reader.Close();
            con.Close();

        }
        return Didyoumean;

    }

我的 Didyoumean 课程是这样的:

public class Didyoumean
{
    public string SearchInput { get; set; }
}

我的ajax调用是这样的(错误最有可能在这里)

函数 bla() {

var SearchInput = document.getElementById("#locationSearchInput").value;

var DataObject = { search: SearchInput };

$.ajax({
    type: "POST",
    url: "/kiosk/EmailCoupon.asmx/SayHello",
    data: JSON.stringify({dataObject}), 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (data) {
        $('.tags_select a').html(data.d); 
    },
    error: function () {
        $('.tags_select a').html("<p>no suggestion</p>")
    }
});

}

最后是我的html

<input id="Button1" type="button" value="button" onclick="bla()"/>
<div class="tags_select">
    <a href="#"></a>

基本上我要做的是根据我数据库中的数据,应用程序会给出拼写错误的建议。

注意:不要注意函数和方法的名称这只是一个测试。

【问题讨论】:

  • 究竟是什么不工作?您是否收到错误消息?调试时会发生什么?
  • 您是否在方法中添加了 WebMethod 属性?
  • 你的 .asmx 类有ScriptServiceAttribute吗?
  • 是的,它确实具有该属性,Web 服务实际上正在工作(我测试过) 问题出在 ajax 调用上,插入参数时它不会从 webmethod 检索数据。
  • JSON.stringify() 中的大括号是错字吗?

标签: javascript jquery asp.net ajax c#-4.0


【解决方案1】:

你的服务可能是这样的

    [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {
        [WebMethod]
        public Didyoumean SayHello(string search)
        {
            Didyoumean didyoumean = new Didyoumean();
            didyoumean.searchInput = "result of " + search;
            return didyoumean;
        }
    }

你的javascript是

    function test() {
    var SearchInput = "test";
    $.ajax({
        type: "POST",
        url: "/WebService1.asmx/SayHello",
         data: JSON.stringify({search:SearchInput}),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            var didYouMean = data.d;
            alert(didYouMean.searchInput);
        },
        error: function (e) {
            console.log(e);

        }
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    相关资源
    最近更新 更多