2016-12-28 82 views
0

下面AJAX调用不执行Web方法

<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() 
    { 

    } 

Simple代码没有达到我的WebMethod,我不知道什么是错的,有人可以添加一些光?

编辑:在调试,我发现了以下错误: ailed加载资源:服务器500(内部服务器错误)的状态

+0

是jquery的loading? –

+0

也有你试图把你的网址前面的一个? .. like:url:'/MenuBackoffice.aspx/onSearch', –

+0

这是一个服务器端错误(线索在“Internal * Server * Error”中):)启用完整的错误显示在您的服务器上以查看实际bug –

回答

1

我必须清理并生成解决方案,之后改为错误“有人试图调用方法‘onSearch’使用GET请求,这是不允许的。”

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

+0

好。请改用Ajax方法使用GET,而不必使用ScriptMethod。 –

+0

这甚至更好。编辑。 –

0

添加以下代码routeconfig回应。

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

如果这不起作用,URL可能是一个问题。尝试更改网址:在Ajax调用。

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

仍然有同样的错误,这让我疯狂! –

+0

建议您可以尝试使其在答案中发挥作用。 –

+0

得到了同样的错误: 未知的Web方法onSearch。 参数名称:methodName –