AJAX调用不执行Web方法

时间:2016-12-28 14:42:16

标签: c# jquery asp.net ajax

下面的简单代码

<div class="btn btn-primary" id="btnSearch">Search</div>

<script src="<% = Page.ResolveUrl("~/Scripts/jquery-latest.js") %>"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('#btnSearch').click(function () {
                $.ajax({
                    method: 'POST',
                    url: 'MenuBackoffice.aspx/onSearch',
                    contentType: 'application/json; charset=utf-8',
                    dataType: 'json',
                    data: { },
                    success: function (msg) {

                    }
                });
            });
        });
    </script>

    [WebMethod]
    public static void onSearch()
    {

    }

没有联系到我的WebMethod,我不知道出了什么问题,有人可以添加一些亮点吗?

编辑:在调试中我收到以下错误: ailed to load resource:服务器响应状态为500(内部服务器错误)

2 个答案:

答案 0 :(得分:1)

我必须清理并构建解决方案,之后错误更改为&#34;尝试调用方法&#39; onSearch&#39;使用GET请求,这是不允许的。&#34;

编辑:添加Nagaraj Raveendran解决方案 - 而不是在ajax方法中使用GET,而不必使用ScriptMethod。

答案 1 :(得分:0)

将以下代码添加到routeconfig。

routes.IgnoreRoute("MenuBackoffice.aspx/onSearch");

如果这不起作用,则URL可能是个问题。尝试更改URL:在ajax调用中。

'<%= ResolveUrl("MenuBackoffice.aspx/onSearch") %>'