asp.net jquery datatables.net webmethod

时间:2009-12-17 03:47:50

标签: asp.net jquery datatables webmethod

我正在使用ASP.net 3.5。使用JQuery调用Webmethod会返回有效的JSON数据。但是,当我使用datatables.net JQuery插件调用相同的webmethod来填充html表时,我会返回页面的整个html。

**WebMethod:**
 <WebMethod()> _
         Public Shared Function GetData() As String
        Dim a As String = "{""aaData"": [['Trident','Internet Explorer 4.0']]}"
        Return a
    End Function


**Successful JQuery call:**
 $("#Result").click(function() {
    $.ajax({
      type: "POST",
      url: "Default2.aspx/GetData",
      data: "{}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function(msg) {
        // Replace the div's content with the page method's return.
        $("#Result").text(msg.d);

      }
    });
  });
});

不成功的JQuery调用:

$(document).ready(function() {
    $('#example').dataTable({
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "Default2.aspx/GetDate",
        "fnServerData": function(sSource, aoData, fnCallback) {
        $.ajax({
        "dataType": 'json',
        "url": sSource,
        "data": aoData,
        "success": fnCallback
        });
        }
    });
});

关于为什么第二次调用返回html的任何想法?我尝试将contentType:“application / json; charset = utf-8”添加到第二个ajax调用中。我收到了错误。

2 个答案:

答案 0 :(得分:0)

可能是您正在调用一个不存在的方法,因此可能会出现错误页面。更好地检查您的回复中的内容。

"sAjaxSource": "Default2.aspx/GetDate",

在成功通话中,您正在使用GetData方法

url: "Default2.aspx/GetData",

在不成功的通话中,您正在调用GetDate方法。

答案 1 :(得分:0)

contentType:将需要application / json。提供时会出现什么错误?

可能存在编码错误;见How to set encoding in .getJSON JQuery