Jquery ajax自动完成调用数据的方法

时间:2011-11-23 12:12:23

标签: c# jquery ajax

$(function () {
        $("#tbNominalAccounts").autocomplete({
            source: function (request, response){
                $.ajax({
                url: "TestPage3.aspx/GetUserNominalAccounts",
                type:"POST",
                datatype:"json",
                data :{ searchText : request.term},
                success: function(data) 
                {
                    response(
                        $.map(data, function(item)
                    {
                        return { label: item.NominalAccount, value:item.NominalAccount, id:item.NominalAccount}
                    }))
                }
            })
            }
        });

    });

添加了断点并且它命中了ajax调用,但是当我在方法GetUserNominalAccounts上放置一个断点时,它甚至到达它!为什么不发布的任何想法?!

我有一个ID为#tbNominalAccounts的文本框仅供参考

2 个答案:

答案 0 :(得分:0)

尝试在ajax请求中输入内容:

contentType: "application/json; charset=utf-8",

我注意到在使用jQuery Ajax时,默认内容类型application/x-www-form-urlencoded不能很好地运行。

答案 1 :(得分:0)

重新格式化您的数据:

pString = '{"searchText":"' + request.term + '"}';
    $.ajax({
        data: pString,
...

您的服务器端代码应已正确“修饰”以允许页面访问

以为我会使用asp.net从工作示例中添加一些代码:您可能需要使用此转换器来处理asp.net数据:

dataType: "jsond",
type: "POST",
contentType: "application/json",
converters: {
    "json jsond": function(msg)
    {
        return msg.hasOwnProperty('d') ? msg.d : msg;
    }
},

编辑:并且使用返回值:

focus: function(event, ui)
{
  return false; // return "true" will put the value (label) from the selection in the field used to type
},