Jquery Autocomplete未经授权的Webmethod

时间:2016-02-08 21:59:02

标签: jquery ajax jquery-autocomplete webmethod

我正在尝试使用jQuery自动完成文本框从WebForm(.NET 4.6)中的数据库中查找数据。当AJAX方法被触发时,我在控制台中收到401 Unauthorized错误。

请告诉我如何使用jQuery自动完成功能在服务器端成功点击Webmethod。

我的js文件如下:

$(function() {

    ...

    $("input[id*='txtDiagnosisSearch']").autocomplete({
        source: function(request, response) {
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "/WebUserProvider/Referral_Precert_CNReferralForm.aspx/GetDiagnosisCodes",
                data: "{'diagCode':'" + $("input[id*='txtDiagnosisSearch']").val() +
                    "', 'description':'" + $("input[id*='txtDiagnosisSearch']").val() + "'}",
                dataType: "json",
                success: function(data) {
                    response(data.d);
                },
                error: function(result) {
                    alert("No Match");
                }
            });
        }
    });

    });

我的HTML如下:

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">

    <script src="../JavaScript/WebProvider/Referral_Precert_CNReferralForm.js"></script>

...

<div style="display: inline-block; font-weight: bold; width: 20%">
                    <asp:TextBox runat="server" ID="txtDiagnosisSearch"></asp:TextBox>
                </div>

...

</asp:Content>

我的服务器端代码如下:

[WebMethod]    
    public List<Referral_PrecertVO.DiagnosisCodes> GetDiagnosisCodes(string diagCode, string description)
    {
    var list = new List<Referral_PrecertVO.DiagnosisCodes>();

    list = objReferral_PrecertBL.GetDiagnosisCodes(diagCode, description);

    return list;
}

0 个答案:

没有答案