【问题标题】:AJAX call not executing web methodAJAX 调用未执行 Web 方法
【发布时间】:2016-12-29 03:29:51
【问题描述】:

下面的简单代码

<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,我不知道是什么问题,有人可以加点灯吗?

编辑:在调试中我收到以下错误: 无法加载资源:服务器响应状态为 500(内部服务器错误)

【问题讨论】:

  • jquery 加载了吗?
  • 你也试过在你的网址前面加一个 / 吗? .. like : url: '/MenuBackoffice.aspx/onSearch',
  • 这是一个服务器端错误(线索在“Internal Server Error”):) 在您的服务器上启用完整错误显示以查看实际错误跨度>
  • @federicoscamuzzi:如果这是问题所在,那将是 404。
  • 它肯定会到达您的 WebMethod,然后会产生未处理的异常。添加调试或日志记录代码以确保发生了什么。

标签: c# jquery asp.net ajax


【解决方案1】:

我必须清理并构建解决方案,然后错误变为“尝试使用 GET 请求调用方法 'onSearch',这是不允许的。”

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

【讨论】:

  • 好。而是尝试在 ajax 方法中使用 GET,而不必使用 ScriptMethod。
  • 那就更好了。已编辑。
【解决方案2】:

将以下代码添加到 routeconfig。

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

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

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

【讨论】:

  • 建议您可以尝试进行另一项更改以使其在答案中起作用。
  • 遇到同样的错误:未知的网络方法 onSearch。参数名称:methodName
猜你喜欢
  • 2012-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
  • 2014-07-31
  • 2015-08-24
  • 2013-08-16
相关资源
最近更新 更多