ASP.NET JQuery DataTables.net WebMethod
-
20-09-2019 - |
Frage
Ich verwende ASP.NET 3.5. Ein Anruf bei einem WebMethod mit JQuery gibt gültige JSON -Daten zurück. Wenn ich jedoch denselben WebMethod anrufe, um eine HTML -Tabelle mithilfe des Plugins von DataTables.net JQuery zu füllen, werde ich die gesamte HTML der Seite zurückerhalten.
**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);
}
});
});
});
Erfolgloser JQuery -Anruf:
$(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
});
}
});
});
Irgendwelche Gedanken darüber, warum der zweite Anruf HTML zurückgibt? Ich habe versucht, ContentType hinzuzufügen: "Application/JSON; Charset = UTF-8" zum zweiten Ajax-Anruf. Ich bekomme einen Fehler.
Lösung
ContentType: Anwendung/JSON wird erforderlich sein. Was ist der Fehler, den Sie bei der Lieferung erhalten?
Vielleicht gibt es einen Codierungsfehler; sehen So setzen Sie Codierung in .getjson jQuery
Andere Tipps
Möglicherweise rufen Sie eine Methode auf, die nicht existiert. Möglicherweise kommt eine Fehlerseite als Antwort. Überprüfen Sie besser, was in Ihrer Antwort kommt.
"sAjaxSource": "Default2.aspx/GetDate",
In einem erfolgreichen Anruf verwenden Sie die GetData -Methode
url: "Default2.aspx/GetData",
In erfolglosen Anruf rufen Sie die GetDate -Methode auf.