2009-12-17 4 views
2

ASP.net 3.5를 사용하고 있습니다. JQuery를 사용하여 Webmethod를 호출하면 유효한 JSON 데이터가 반환됩니다. 그러나 datatables.net JQuery 플러그인을 사용하여 html 테이블을 채우기 위해 동일한 webmethod를 호출하면 페이지의 전체 HTML이 반환됩니다.asp.net jquery datatables.net webmethod

**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와 전화 : 두 번째 호출이 HTML을 반환하는 이유에

$(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 
     }); 
     } 
    }); 
}); 

어떤 생각? 나는 contentType : "application/json; charset = utf-8"을 두 번째 ajax 호출에 추가하려고 시도했다. 오류가 발생했습니다.

+0

죄송합니다, "Default2.aspx/GetDate"는 오타입니다. 두 경우 모두 "Default2.aspx/GetData"가 호출됩니다. 실패한 호출의 결과는 여전히 전체 페이지입니다. – klork

답변

0

존재하지 않는 메소드를 호출 할 수 있습니다. 따라서 오류 페이지가 응답 중일 수 있습니다. 응답 내용이 무엇인지 확인하십시오. 성공적으로 호출에

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

당신은 당신이에 GetDate 메서드를 호출하는 실패한 호출에서 GetData 메서드

url: "Default2.aspx/GetData", 

을 사용하고 있습니다.

+0

죄송합니다. "Default2.aspx/GetDate"는 오타입니다. 두 경우 모두 "Default2.aspx/GetData"가 호출됩니다. 실패한 전화의 결과는 여전히 전체 페이지입니다. – klork

+0

당신은 prob를 알아 내기 위해 더 많은 것을 제공 할 수 있습니까? – Krunal

관련 문제